わけあってsudoの設定をチョロっといじったので、忘れないうちにメモ。

sudo コマンドはLinux一般ユーザがrootとか自分以外のユーザ権限で何かを実行するためのもの。

$ sudo hoge.sh

とすると、通常はパスワードを求められるので、「一般ユーザのパスワード(rootではない)」を入力する。
なお、rootと同じパスが通るわけではないので、rootしかパスが通っていないコマンドを実行する場合は絶対パス指定で。

sudoの設定は、visudoコマンドで行う。
(ファイルの実体は/etc/sudoersにある。)

ファイル末尾あたりに

test ALL=(ALL) ALL

と記述すると、testユーザでsudoできるようになる。
ちなみに、左から
・sudoを実行するユーザ(頭に%をつけるとグループ)
・許可するホスト(基本ALLでOK)
・sudoされるユーザ(ALLだとrootみたいな。)
・許可するコマンド(ALLだと全部、ひとつずつ指定するならカンマ区切りで。)
といった感じ。

ちなみに、

test ALL=(ALL) NOPASSWD: ALL

ってな感じに NOPASSWD: を入れると、sudo時にパスワードを求められなくなる。

あとは、sudoersはデフォルトで

Defaults    requiretty

となっていて、これだとsshやらWinSCPあたりから直でsudoコマンドを叩こうとするとエラーが出る。
エラーを避けるにはここをコメントアウトしても良いのだが、なんかボディーがら空きみたいでイヤ。

Defaults:test !requiretty

と1行追記するとtestユーザだけrequirettyが消せるので、こっちの方がまだマシか。
(どっちにしろ、セキュリティー関連くさいのであんま消したくないが。。

余談になるが、visudoは:wで書き込んだだけでは変更が適用されなかったっぽい。
書いた内容がおかしいのかと、しばらくあーだこーだやってしまった。。
:wqで閉じたらやっと適用された。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Name *
Email *
Website

*