2025年8月8日金曜日

/etc/sudoers を修正します

 こんばんわ

今日は、/etc/sudoers の設定の話です。詳しいことはわかりませんし、詳しい設定を行うつもりもないのですが、あるユーザに対して、あるコマンドを管理者権限でパスワードの入力を行わずに実行させたいというときにどうしたら良いかという話です。

例えば、私の持っているあるMacですと次のように設定されています。おそらくほとんどの方が同じようになっていると思います。


ここで着目するのは、

%admin          ALL = (ALL) ALL

の行です。一番左から、「だれが」、「どこで」、「だれになって」、「何ができる」てな意味のようです。

一番左の%admin(だれが):

adminグループに所属するユーザという意味です。wheel グループに所属するユーザを全員許可したい場合は、%wheel と書きます。ここを、user1などと記載すれば、user1 というユーザということになります。複数指定する場合はカンマ区切りで指定します。

初めのALL(どこで):

「すべてのホスト」ということになります。例えば、host-a だけで有効にしたい場合は、host-a と書けば良いようです。複数指定する場合は、カンマ区切りで指定します。ファイルを配布したりする必要がなければALLと書いておいて問題ないように思います。

(ALL)(だれになって):

ALLと記載すると、誰にでもなれます。-u / -g オプションでユーザやグループを存在するものであれば任意のものを指定できます。特に指定しないと、最上位のユーザとグループ、rootグループ、rootユーザになって実行するようです。あるユーザ user1 になって実行させたい場合は、(user1) と記載します。グループも group1 と指定したければ、(user1:group1)と指定します。(user1:group1)と指定すると、ユーザが sudo コマンドのオプションで、何も指定しなかった場合は、user1:group1 として実行されます。sudo -u user2 ... とか、sudo -g group2 ... のように、許可されていないユーザやグループを指定された場合は実行できません。

ALL(何ができる):

こちらには実行できるコマンドを書きます。ワイルドカードなど使えるのですが、詳細はマニュアルを見ていただくとして、通常ははっきりと実行を許可するコマンドを書く方が良いと思います。/bin/ls と書くと、/bin/ls が実行できます。NOPASSWWD: /biin/ls と書くと、sudo する際にパスワードの入力が必要なくなります。

では、いくつか例を示します。

例1:admin さんには、すべてのホストですべてのコマンドをroot:rootで実行させたい。

admin    ALL=(ALL)    ALL

例2:admin さんには、すべてのホストですべてのコマンドをroot:rootで実行させたい。よくないとは思うけど、実行時にパスワードの入力を求めないようにしたい。

admin    ALL=(ALL)    NOPASSWD: ALL

例3:user1 さんに、すべてのホストで、root:root 権限で /bin/ls を実行させたい。実行時にパスワードを入力させたい。

user1    ALL=(ALL)    /bin/ls

例4:user1 さんに、すべてのホストで、root:root 権限で /bin/ls と/bin/cp を実行させたい。よくないとは思うけど、実行時にパスワードの入力を省略したい。

user1    ALL=(ALL)    NOPASSWD: /bin/ls , /bin/cp

実は、自分、設定するたびに、どうやっていたか忘れてしまうので、ここにメモを残したくて。。。

0 件のコメント:

/etc/sudoers を修正します

 こんばんわ 今日は、/etc/sudoers の設定の話です。詳しいことはわかりませんし、詳しい設定を行うつもりもないのですが、あるユーザに対して、あるコマンドを管理者権限でパスワードの入力を行わずに実行させたいというときにどうしたら良いかという話です。 例えば、私の持っている...