私たちのステージング サーバーは Amazon EC2 インスタンス上にあります。SSH で接続すると、パスワードを入力せずにsudo
コマンドを実行できます。sudo su
ユーザーが でコマンドを実行するときにパスワードを要求する方法はありますかsudo
? アクセスを必要とするサードパーティの開発者がいて、その開発者のルート権限を制限したいと考えています。
パスワードを設定してみましたsudo passwd
が、まだパスワードは必要ありません。
~$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
~$ sudo su
/home/ubuntu# exit
~$ sudo passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
~$ sudo su
/home/ubuntu#
アップデート
以下を実行して追加することで、パスワードを要求してみましたsudo visudo
:
ubuntu ALL=(ALL) ALL
今、パスワードを求められていますが、設定したパスワードは機能しません。幸いなことに、これを開始する前に AMI を作成しました。
ユーザーにパスワードが設定されていないことが問題なのでしょうか。ではなく、ubuntu
を実行する必要があります。sudo passwd ubuntu
sudo passwd root
最終的解決
念のため言っておきますが、私のミスは間違ったユーザーにパスワードを設定してしまったことです。根私はこれをウブントゥと:
~$ sudo passwd ubuntu
そして更新する/etc/sudoersそのため、ウブントゥユーザーはコマンドを実行するときにパスワードを入力する必要がありますsudo
。このファイルを編集するには、以下を実行しsudo visudo
て追加する必要があります。
ubuntu ALL=(ALL) ALL
答え1
次のような行がある場合
ALL ALL=(ALL) NOPASSWD:ALL
/etc/sudoers では、すべてのユーザーがパスワードを要求されることなく sudo を実行できるようになります。この行のコメントを解除すると、たとえば sudo の使用を許可するユーザーを指定する必要があります。
myuser ALL=(ALL) ALL
答え2
Sudo は資格情報をキャッシュするため、短期間に複数回使用する場合は、最初の 1 回のみパスワードが要求されます。
man ページには次のように書かれています:
timestamp_timeout
Number of minutes that can elapse before sudo will
ask for a passwd again. The timeout may include a
fractional component if minute granularity is
insufficient, for example 2.5. The default is 5.
Set this to 0 to always prompt for a password. If
set to a value less than 0 the user's time stamp
will never expire. This can be used to allow users
to create or delete their own time stamps via "sudo
-v" and "sudo -k" respectively.
したがって、常にパスワードを要求したい場合は、次のように入力してsudo visudo
ファイルを編集するだけです。次の行を追加します。
Defaults timestamp_timeout=0
これにより、すべての sudo コマンドにパスワードを入力する必要が生じます。