おそらく簡単な質問ですが、実際のベストプラクティスを見つけることができないようです。少数のサーバーを管理していますが、pwsafeでパスワードを追跡することにうんざりしています。私はパスワードではなくSSHキーを使用して認証を実装することを検討してきましたが、その場合にユーザーにSudo権限を実装する最良の方法について懸念があります。
多くの人が/ etc/sudoersを変更して必要なユーザーをNOPASSWDに設定していることを知っています。しかし、ユーザーにパスワードを与える人々についての言及は見当たらないので、それを行うのは難しいです。私のボックスが非特権ユーザーとして所有されている場合は、理論上は、NOPASSWDのユーザーにすばやく「suユーザー」が参加するだけで済みます。さらに悪いことに、物理的なアクセスと私のユーザー名を知っている人。
先に進んでそれらのアカウントにパスワードを設定するのがベストプラクティスですか、それともローカルログインを禁止する、またはパスワードを設定してそれを捨てる/使用しないなど、他のメカニズムが使用されていますか?
NOPASSWD
オプションを使用すると、パスワードを入力しなくても、Sudo
プログラムをSudoユーザーが実行できます。アカウントがパスワードなしであることを意味するものではありません。
su youruser
を実行する他のユーザーは、youruser
のパスワードを入力する必要があります。ただし、youruser
として(物理アクセスまたはSSH経由で)ログインしている場合は、Sudo somecommand
を実行するときにパスワードを入力する必要はありません。
彼の回答で述べた@Lekensteynのように、/etc/sudoers
ファイルのNOPASSWD
ディレクティブは、Sudo
コマンドを実行するときにユーザーがパスワードを入力する必要をなくすだけです。
これは、ユーザーがパスワードまたはsshキーを使用してボックスにsshを入力するかどうかとはまったく関係がありません。どちらの方法でも、ユーザーがボックスへのsshアクセス権を持っている場合、ユーザーにallコマンド、または/etc/sudoers
ファイルのsu
からSudo
までの実行を許可すると、 Sudo su -
を実行するだけで、ルートに特権を昇格できます。
もちろん、ベストプラクティスは、Sudo
を使用して古いユーザーが古いコマンドを実行できないようにすることです。特定のユーザーにrootとしての実行を許可し、他の何にもアクセスできないようにするコマンドのホワイトリストを作成します。簡単な(少し面倒な場合は)Sudo
特権のさまざまなセットを使用してさまざまな「管理者」グループを設定し、そのグループを特定のユーザーに割り当てることができます。特定の構成の詳細については、man sudoers
を参照してください。