sudoのちょっとしたトラブル
root以外のユーザを指定してsudoを実行しようとすると、実行を許可されていません、みたいなエラーが出た。
$ sudo -u foo ls / Sorry, user hoge is not allowed to execute '/bin/ls /' as foo on host_name.
色々調べていると、sudoersファイル内でユーザ権限の設定をしていない事が分かった。
hoge ALL = (ALL) [NOPASSWD:] ALL #一つ目のALLは接続元、二つ目の括弧付きALLはユーザ、三つ目はコマンドをそれぞれ表している。
二つ目の括弧付きを省略していると、ユーザはrootのみになる。sudo -lで自分の設定を確認できる。
$ sudo -l User hoge may run the following commands on this host: (root) NOPASSWD: ALL
sudoersファイルの修正後。
$ sudo -l User hoge may run the following commands on this host: (ALL) NOPASSWD: ALL
よく分からないまま使っているとトラブル発生時に困る例。