- 2007/05/17
- Linux | プログラムミング その他
以下の方法は、サーバの運用方法とセキュリティを考慮して参考程度に。
一般ユーザが root(または別のユーザ) の権限を使ってコマンドを実行することができる sudo コマンドは、通常その対象ユーザのパスワードの入力を求められるが、PHPやPerlスクリプトなどで sudo を使いたい場合などはパスワードを知っていても入力できず実行ができない(対話式のため)。
system("sudo hogehoge");
この sudo コマンドのパスワード入力を解除する方法は、/etc/sudoers を編集するだけ。
/etc/sudoers
ただしこのファイルを編集するには当然 root 権限が必要なので、su で root になっておく必要がある(もしくは sudo )。
#vi /etc/sudoers root ALL=(ALL) ALL zaru ALL=(ALL) NOPASSWD:ALL #zaruユーザはパスワード入力を必要としない piyo ALL=(ALL) PASSWD:ALL #piyoユーザはパスワード必須
通常は、パスワード入力必須なので PASSWD とは記述しなくてもOK。パスワード入力を解除したいユーザにのみNOPASSWDを設定しよう。
記述ルール
この権限の記述ルールは単純。
- ユーザ ホスト = (権限) コマンド
ALLとすれば、全てのホスト・コマンド。/sbin/ とすれば /sbin/以下のコマンド。/sbin/shutdown とすれば shutdown コマンドを指定することができる。
- Newer: PHPに関するアンケート
- Older: カメラマン(仮)として撮影してきたので気をつけるべき要点をまとめ