시스템 간 파일 전송, 모니터링 등과 같이 세분화 된 권한이 필요한 자동화 된 작업을 위해 생성 한 여러 사용자 계정이 있습니다.
이러한 “사용자”에게 쉘이없고 로그인 할 수 없도록 이러한 사용자 계정을 어떻게 잠급니까? 우리는 누군가 이러한 사용자 계정 중 하나로 SSH에 접속할 수 없도록합니다.
답변
이 usermod
명령을 사용하여 사용자의 로그인 쉘을 변경할 수 있습니다 .
usermod -s /sbin/nologin myuser
또는
usermod -s /usr/sbin/nologin myuser
OS가 / sbin / nologin을 제공하지 않으면 쉘을 / bin / false와 같은 NOOP 명령으로 설정할 수 있습니다.
usermod -s /bin/false myuser
답변
로그인 쉘을 변경한다고해서 반드시 사용자 인증을 막을 수있는 것은 아닙니다 (사용자 쉘이에 언급되어 있는지 확인하는 일부 서비스는 제외 /etc/shells
).
사용자는 여전히 시스템이 UNIX 사용자에게 제공하는 다양한 서비스를 인증 할 수 있으며, 임의의 명령을 직접 실행하지는 않지만 일부 조치를 수행 할 권한이 여전히있을 수 있습니다.
셸을 변경 /bin/false
또는 /usr/sbin/nologin
만 명령을 실행하는 데 사용할 수있는 서비스 (콘솔 로그인, SSH, 텔넷, RLOGIN, REXEC …)에서 명령을 실행하는 것을 방지되므로 영향을 미치는 권한을 일부 서비스.
예 ssh
를 들어, 여전히 포트 포워딩을 수행 할 수 있습니다.
passwd -l
암호 인증을 사용하지만 사용자는 여전히 (같은 다른 인증 방법을 사용하는 것이 허용 될 수 authorized_keys
로 ssh
).
로 pam
적어도 리눅스에, 당신은 사용할 수 있습니다 pam_shells
허용 쉘 (그가에 언급과 사용자 인증 또는 승인을 제한 할 모듈 /etc/shells
). 의 경우 다른 인증 방법 (예 🙂 외에도 인증 용도 에 대해 ssh
권한 부여 ( account
) 수준 에서 수행하거나, (예 : 친구)의 지시문으로 수행 할 수 있습니다 .sshd
pam
authorized_keys
sshd_config
/etc/ssh/sshd_config
AllowUsers
전역 pam 인증에 일부 제한을 추가하면 cron
해당 사용자로 작업을 실행하지 못할 수 있습니다.
답변
/etc/passwd
파일을 편집하고 사용자 쉘을 /bin/bash
에서 또는 /bin/sh
로 변경하십시오./sbin/nologin
답변
먼저을 사용하여 비밀번호를 비활성화하십시오 passwd -l username
.
옵션 에 대한 man
페이지 도 참고 하십시오 .passwd
-l
-l, --lock
Lock the password of the named account. This option disables a password by changing it to a value which matches no
possible encrypted value (it adds a ´!´ at the beginning of the password).
Note that this does not disable the account. The user may still be able to login using another authentication token
(e.g. an SSH key). To disable the account, administrators should use usermod --expiredate 1 (this set the account's
expire date to Jan 2, 1970).
Users with a locked password are not allowed to change their password.
답변
chsh 명령을 사용할 수 있습니다 :
~# chsh myuser
요청시 새로운 쉘 세부 사항을 입력하십시오.
Login Shell [/bin/sh]: /bin/nologin
또는 더 짧은 버전 :
~# chsh myuser -s /bin/nologin
답변
(설명으로 포트 포워딩을 가능하게 로깅에서 사용자와 ssh를 한층 인증 방지하기 위해 여기 스테판)을, 나는 시스템과 유사하게 사용자를 수정하는 nobody
사용자 :
/etc/shadow
( 적합한 필드에서*
또는!!
적절한 필드에서) 비밀번호 인증 차단- 비활성화 된 쉘
/etc/passwd
(예/sbin/nologin
: 적절한 필드) - 읽기 전용 홈 디렉토리
/etc/passwd
(예/
: 적절한 필드)