ユーザーが "su -
ser"を使用してログインすることを許可しながら、ユーザーがSSHを使用してログインできないようにするにはどうすればよいですか?
シェルを/bin/false
に設定しようとしましたが、su
を試行しても機能しません。
su
によるログインのみを許可する方法はいくつかありますか?
SSHのAllowUser
は先に進みますか? (それが行く方法であるなら、私はこれをどのように行いますか)
AllowUsers/AllowGroupsは、sshまたはDenyUsers/DenyGroups許可されているが許可されていないユーザー/グループが少数の場合ログインする。これはssh経由のログインのみを制限することに注意してください。他のログイン方法(コンソール、ftpなど)も引き続き可能です。ほとんどのsshインストールでは、これらのオプションを/ etc/ssh/sshd_configファイルに追加する必要があります。
ログインシェルを/ bin/falseに設定した場合は、su -s /bin/bash user
(replace/ bin/bashお好みのシェルで)
それでもsuを機能させたい場合は、Sudo -u [username]
を使用するか、-s /bin/bash
を一時シェルとしてsuに渡すことができます。 /etc/passwd
にシェルがない場合、どちらも同じことを行います。
アカウントにパスワードがない場合(passwd -d username)、インタラクティブにログインできません(コンソール、SSHなど)。有効なシェルがあれば、sは引き続き機能します。ただし、「インタラクティブ」に注意してください。誰かがアカウントにSSHキーペアを設定することに決めた場合、それは機能します!
Sshd_configにDenyUser [username]
という行を追加します
これにより、そのユーザーがコンソール経由でログインできなくなることはありません。
上記の内容(ユーザーパスワードの無効化および/または設定なし)に加えて、pam_accessモジュール(pam_accessおよびaccess.confのmanページを参照)を使用して、ログインアクセスを制御できます。
/ etc/shadowを編集して、!パスワードハッシュの先頭に。
username:!<hash>:#####:#:#####:#:::
新規インストールを保護するとき、これはSudoのインストール後に最初に行うことなので、誰もrootユーザーを使用してシステムにログインまたはsshできず、Sudoユーザーは引き続きrootユーザーとして実行できます。
他の人が言ったように;
DenyUser username
またはDenyGroup groupname
in sshd_config
は、sshを介したキーペア/パスワードのログインを防ぎます。
私は通常AllowGroup ssh
またはそれらの行に沿って何か、そしてそのグループへのsshアクセスを必要とする人々を明示的に追加します。
その後、他の人が言ったようにあなたは行うことができます:passwd -d username
を使用すると、ユーザーのパスワードを空白にして、コンソールやその他の方法でログインできないようにすることができます。またはもっと良いpasswd -l username
アカウントを「ロック」します。 sshが鍵を使用していても、ロックされたアカウントへのアクセスを拒否する可能性がありますが、私は肯定的ではありません。
コメントで述べたように、無効なシェルのアカウントにも引き続きアクセスできると思います。したがって、ユーザーのシェルを/ dev/nullまたはbinのシェルに設定した場合でも、そのユーザーにsuを実行できるはずです。
ログインまたは削除を許可されていないユーザーのパスワードを指定しないでください。
# passwd -d myuser
Rootのアカウントからのみユーザーをsuし、他のすべてのアクセスを無効にしたい場合:
これを使用(ルートとして実行):
usermod -e 1 -L user
これにより、パスワードログインが無効になります(他の多くの回答が助言しているように)ただし、アカウントの有効期限も切れます。期限切れのアカウント(例: SSHキーを使用します。あなたはまだすることができます su user
、ただしアカウントの有効期限が切れているという通知が表示されます。
どのメカニズムが最適であるかは、要件によって異なります。要件がわかっている場合は、適切なメカニズムを選択できます。上記の回答はすべて、いくつかの要件に対して有効です。
SSHアクセスのみを制限しますか?メールまたはsshメソッドにアクセスする必要がありますか?ルートからのアクセスのみですか?
su - user
がroot以外のユーザーで実行される場合、ユーザーのパスワードが必要になります。しかしながら、 Sudo -u user -i
はユーザーのパスワードを必要としません。