2010年02月02日 過去Blog
ブラウザからPHPスクリプトにアクセスして、PHPプログラムからsudoコマンドを実行する方法です。 私の場合は、手元のfedoraが動いているサーバで試してみましたが、「anysense-devel」さんの記事通りに実行出来ましたので、ご紹介、というか今後の自分のためにもメモしておきます。
以下、参照元「anysense-devel」さんの記事です。
ご存知の通りPHPからコマンドを実行するにはexec()やsystem()等を使えばいいんですが、Apacheに実行権限が無いファイルを扱う場合はsudoしてから実行する必要があります。
<?PHP
$cmd = "echo 'password' | sudo -S ls /root";
exec($cmd, $output);
print_r($output);
?>
みたいに-Sを付けてやればパイプでパスワードを渡すことが出来ます。 ここで入力するのはもちろんapacheが動いているユーザーのパスワードです。 apacheがどのユーザー権限で動いているかはhttpd.confのUserディレクティブとGroupディレクティブで確認できます。 因みにCentOS5.1でyumでapacheをインストールした場合はapacheというグループのapacheというユーザーとして動いています。 PHPスクリプト内のexec()関数で呼び出されたコマンドもこのユーザーとして実行されます。 以下、Apacheを実行しているユーザーをapacheと仮定して書きます。apacheは環境に応じて適当に読み替えてください。 sudoする際に渡すパスワードはapacheのものですが、デフォルトではapacheユーザーにはパスワードがありません。パスワードが無い場合sudoできませんので何でもいいのでパスワードを指定してあげましょう。
sudo passwd apache
次にapacheユーザーがsudoできるようにsudoersファイルを編集します。ルート権限で
visudo
と入力するとsudoersファイルを編集できますので、末尾に
apache ALL=(ALL) ALL
と追記します。さらに
Defaults requiretty
という行をコメントアウト(行頭に#を追加)して端末を持たないユーザーからのsudoを許可します。 これでapacheユーザーからsudo出来るようになりました。冒頭のPHPスクリプトへブラウザからアクセスして/rootの中身が見れたら成功です。 http://hogehack.blog80.fc2.com/blog-entry-36.html

この投稿へのコメント

コメントはまだありません。

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

CAPTCHA


ピックアップ記事

zencart サイトタイトル・サイトキーワードの変更

2010年06月29日 過去Blog
SEO対策のためには、サイトのタイトルやキーワードを設定することになると思いますが、zencartで構築されたサイトのタイトルやキーワードを変更するには、includes/languages/japanese/meta_tag.php を編集します。 ■サイトのタイトルを変更 「TITLE」、「SITE_TAGLINE」を変更する。 ■キーワードを変更 「CUSTOM_KEYWORDS」を変更…
「zencart サイトタイトル・サイトキーワードの変更」をはてなブックマークに追加

mac で windows キーボードのhome、 end

2010年10月14日 過去Blog
windowsでは細かいところでキーボードのhomeボタン、endボタンを使うことが多かったのですが、Macでは、どうすればいいのか。。。 cmd + 矢印キーで実現できました。 cmd+shift+矢印で選択できます。 参考サイト http://firstmac.blogspot.com/2007/06/home.html
「mac で windows キーボードのhome、 end」をはてなブックマークに追加

phpでwhois情報の取得

2009年12月26日 過去Blog
Net_Whois::query() – whois 問い合わせを実行する pear install Net_Socket pear install Net_Whois もし、「WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to update」 という警告が出る場合は、以下を実行して、pear.php.netをアップデートします。 # pear channel-update pear.php.net 私の場合は、警告は出ましたが、アップグレードしなくても pear install Net_Socket pear install Net_Whois のインストールは完了しました。 …
「phpでwhois情報の取得」をはてなブックマークに追加

ドット・ストライプなど背景画像作成

2011年01月26日 過去Blog
ドット背景 http://www.pixelknete.de/dotter/index.php ストライプ背景 http://www.stripegenerator.com/ その他(タータン柄) http://www.tartanmaker.com/ atlanta plastic surgery when to take omega 3…
「ドット・ストライプなど背景画像作成」をはてなブックマークに追加

UITextField を自動で入力待ち状態にする(フォーカスをあてる)方法

2010年12月26日 過去Blog
UITextField が設置されているviewが表示されたら、自動で入力待ち状態にする方法です。 - (void)viewDidLoad { [super viewDidLoad]; [textField becomeFirstResponder]; } new york limo…
「UITextField を自動で入力待ち状態にする(フォーカスをあてる)方法」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy