답변:
이 usermod
명령을 사용하여 사용자의 로그인 쉘을 변경할 수 있습니다 .
usermod -s /sbin/nologin myuser
또는
usermod -s /usr/sbin/nologin myuser
OS가 / sbin / nologin을 제공하지 않으면 쉘을 / bin / false와 같은 NOOP 명령으로 설정할 수 있습니다.
usermod -s /bin/false myuser
nologin
사실에서 찾을 수있다/usr/sbin/nologin
nologin
/usr/local/bin/maybe
어느 것을 /dev/urandom
선택 해야 합니다. 어쩌면 나는 그것을 사용해야한다 : D
로그인 쉘을 변경한다고해서 반드시 사용자 인증을 막을 수있는 것은 아닙니다 (사용자 쉘이에 언급되어 있는지 확인하는 일부 서비스는 제외 /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
vipw
그런 종류의 실수를 막는 것이 있습니다.
먼저을 사용하여 비밀번호를 비활성화하십시오 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.
/bin/false
보다 일반적인 것 같습니다/bin/true
.