回答:
このusermodコマンドを使用して、ユーザーのログインシェルを変更できます。
usermod -s /sbin/nologin myuserまたは
usermod -s /usr/sbin/nologin myuserOSが/ sbin / nologinを提供していない場合、シェルを/ bin / falseなどのNOOPコマンドに設定できます。
usermod -s /bin/false myusernologin実際には次の場所にあることに注意してください/usr/sbin/nologin
                    nologin
                    /usr/local/bin/maybeいる/dev/urandomLYは、これら二つの間で選択されます。多分私はそれを使用する必要があります:D
                    ログインシェルを変更しても、必ずしもユーザーの認証が妨げられるわけではありません(ユーザーのシェルがに記載されているかどうかを確認する一部のサービスを除く/etc/shells)。
システムがunixユーザーに提供するさまざまなサービスに対する認証をユーザーはまだ受けられる可能性があり、おそらく任意のコマンドを直接実行しない場合でも、いくつかのアクションの実行を許可される可能性があります。
シェルを変更する/bin/falseか、/usr/sbin/nologinコマンドのみを実行するために使用することができるサービス(コンソールログイン、SSH、telnetの、rloginの、REXEC ...)上でコマンドを実行しているからそれらを防ぐことができますので、影響を与える許可を唯一のいくつかのサービスのために。
たとえばssh、それでもポート転送を行うことができます。
passwd -lパスワード認証を無効にしますが、ユーザーはまだ(のような他の認証方法を使用することを許可することができるauthorized_keysとssh)。
でpam少なくともLinux上では、使用することができますpam_shells許可シェル(で述べたものとユーザーに認証または許可を制限するためにモジュールを/etc/shells)。の場合ssh、他の認証方法(のような)に加えてaccount認証のsshd使用に関して認可()レベルで行うか、(like and friends)のディレクティブで行うことができます。pam authorized_keyssshd_config/etc/ssh/sshd_configAllowUsers
ただし、グローバルなpam承認にいくつかの制限を追加するとcron、それらのユーザーとしてジョブを実行できなくなる可能性があることに注意してください。
:|
                    /etc/passwdファイルを編集し、ユーザーシェルをから/bin/bashまたは/bin/shに変更します/sbin/nologin
vipwそのような間違いを防ぐ方法があります。
                    まず、を使用してパスワードを無効にしますpasswd -l username。  
forオプションの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。