web-dev-qa-db-ja.com

ユーザーがログインできないようにしてLinuxで「su-user」を許可する方法は?

ユーザーが "su -ser"を使用してログインすることを許可しながら、ユーザーがSSHを使用してログインできないようにするにはどうすればよいですか?

シェルを/bin/falseに設定しようとしましたが、suを試行しても機能しません。

suによるログインのみを許可する方法はいくつかありますか?

SSHのAllowUserは先に進みますか? (それが行く方法であるなら、私はこれをどのように行いますか)

94
NoozNooz42

AllowUsers/AllowGroupsは、sshまたはDenyUsers/DenyGroups許可されているが許可されていないユーザー/グループが少数の場合ログインする。これはssh経由のログインのみを制限することに注意してください。他のログイン方法(コンソール、ftpなど)も引き続き可能です。ほとんどのsshインストールでは、これらのオプションを/ etc/ssh/sshd_configファイルに追加する必要があります。

ログインシェルを/ bin/falseに設定した場合は、su -s /bin/bash user(replace/ bin/bashお好みのシェルで)

114
Florian Diesch

それでもsuを機能させたい場合は、Sudo -u [username]を使用するか、-s /bin/bashを一時シェルとしてsuに渡すことができます。 /etc/passwdにシェルがない場合、どちらも同じことを行います。

13
Loke

アカウントにパスワードがない場合(passwd -d username)、インタラクティブにログインできません(コンソール、SSHなど)。有効なシェルがあれば、sは引き続き機能します。ただし、「インタラクティブ」に注意してください。誰かがアカウントにSSHキーペアを設定することに決めた場合、それは機能します!

7
astrostl

Sshd_configにDenyUser [username]という行を追加します

これにより、そのユーザーがコンソール経由でログインできなくなることはありません。

3
Chris S

上記の内容(ユーザーパスワードの無効化および/または設定なし)に加えて、pam_accessモジュール(pam_accessおよびaccess.confのmanページを参照)を使用して、ログインアクセスを制御できます。

2
abz

/ etc/shadowを編集して、!パスワードハッシュの先頭に。

username:!<hash>:#####:#:#####:#:::

新規インストールを保護するとき、これはSudoのインストール後に最初に行うことなので、誰もrootユーザーを使用してシステムにログインまたはsshできず、Sudoユーザーは引き続きrootユーザーとして実行できます。

1
snic.io

他の人が言ったように;

DenyUser usernameまたはDenyGroup groupname in sshd_configは、sshを介したキーペア/パスワードのログインを防ぎます。

私は通常AllowGroup sshまたはそれらの行に沿って何か、そしてそのグループへのsshアクセスを必要とする人々を明示的に追加します。

その後、他の人が言ったようにあなたは行うことができます:passwd -d usernameを使用すると、ユーザーのパスワードを空白にして、コンソールやその他の方法でログインできないようにすることができます。またはもっと良いpasswd -l usernameアカウントを「ロック」します。 sshが鍵を使用していても、ロックされたアカウントへのアクセスを拒否する可能性がありますが、私は肯定的ではありません。

1
cpbills

コメントで述べたように、無効なシェルのアカウントにも引き続きアクセスできると思います。したがって、ユーザーのシェルを/ dev/nullまたはbinのシェルに設定した場合でも、そのユーザーにsuを実行できるはずです。

1
Brian Postow

ログインまたは削除を許可されていないユーザーのパスワードを指定しないでください。

# passwd -d myuser
0

Rootのアカウントからのみユーザーをsuし、他のすべてのアクセスを無効にしたい場合:

これを使用(ルートとして実行):

usermod -e 1 -L user

これにより、パスワードログインが無効になります(他の多くの回答が助言しているように)ただし、アカウントの有効期限も切れます。期限切れのアカウント(例: SSHキーを使用します。あなたはまだすることができます su user、ただしアカウントの有効期限が切れているという通知が表示されます。

0
artfulrobot

どのメカニズムが最適であるかは、要件によって異なります。要件がわかっている場合は、適切なメカニズムを選択できます。上記の回答はすべて、いくつかの要件に対して有効です。

SSHアクセスのみを制限しますか?メールまたはsshメソッドにアクセスする必要がありますか?ルートからのアクセスのみですか?

su - userがroot以外のユーザーで実行される場合、ユーザーのパスワードが必要になります。しかしながら、 Sudo -u user -iはユーザーのパスワードを必要としません。

0
BillThor