特定のユーザーとしてパスワードなしのsudoを有効にする


26

私のシステムには2人のユーザーがいます。itsadokメインユーザーとelasticsearch、ElasticSearchを実行するための異なるulimitを持つユーザーです。

毎回パスワードの入力を求められることなく、セカンダリユーザーとして実行できるようにしたいと思います。

に次の行を追加しました/etc/sudoers

itsadok ALL=(elasticsearch:elasticsearch) NOPASSWD: ALL

私が理解する方法では、これにより、ユーザーitsadokは、任意のホストで、パスワードなしで(ユーザーまたはグループ)elasticsearchとしてコマンドを実行できます。ただし、

itsadok@dev001$ sudo -u elasticsearch ls

パスワードの入力を求められます。マシンを再起動しても解決しませんでした。

何が間違っていますか?

更新

行の順序sudoersが重要であることがわかります。正しい場所のように聞こえる「ユーザー権限の仕様」の下に行を配置しましたが、%admin後に来るグループの行は設定を上書きしていました。

sudoersファイルの最後に同じ行を追加すると、問題が修正されました。

回答:


12

コメントから修正された回答:ディレクティブを下#includedirに配置すると、それらは無視されます。sudoまたはadminグループ定義の横の行を移動するか、の別のファイルに配置し/etc/sudoers.d/ます。


うまくいきませんでした。また、ファイルには既にroot ALL=(ALL:ALL) ALLコロンの周りにスペースのないがありましたので、正しくないようです。ただ、安全のために、私は試してみました(elasticsearch)。動作しません。
-itsadok

あなたは正しいです、少なくとも12.10では空白なしで動作します。使用しているUbuntuと、sudoersこの行を正確にどこに配置しますか?古いシステムで最初#includedirに行を配置した場合、それは無視されたというかすかな思い出があります。ファイルの最後にある場合は、includedirの上に挿入してみてください。
ツミノイド

1
あなたのコメントは私を正しい方向に導きました。エントリーの順序が重要です。後の設定は以前の設定を上書きします。
itsadok

16

次の手順を実行します:

  1. sudoersファイルを編集します(これは/etc/sudoers.d/file_nameに存在できます)
sudo visudo -f /etc/sudoers
  1. ファイルの最後に行を追加します
usernameusedforlogin ALL=(ALL) NOPASSWD:ALL
  1. ファイルを保存
esc :wq!

これにより、ユーザーはパスワードなしですべてのホストですべてのコマンドを任意のユーザーとして実行できますが、元の質問の一部であったグループ権限は付​​与されません。一般に、ユーザーに非常に幅広い特権を与えるため、これは悪いアドバイスです。
d4nyll
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.