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


ピックアップ記事

PHPでPING送信を実装する

2010年03月28日 過去Blog
[php]<?php require_once('XML/RPC.php'); function Ping_Send($blog_title,$blog_url){ $ping = array( 'ping.rss.drecom.jp' => '/', 'api.my.yahoo.co.jp' => '/RPC2', 'blog.goo.n…
「PHPでPING送信を実装する」をはてなブックマークに追加

tableViewに関する覚え書き

2011年01月03日 過去Blog
tableView に関する設定の説明です。 テーブル内のセクション数を設定する 以下の例では、2つのセクションをもつテーブルになります。 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 2; } セクション内の行数を指定する 以下の例では、最初のセクションは、2行のデータを表示し、次のセクションでも2行のデータを表示します。…
「tableViewに関する覚え書き」をはてなブックマークに追加

Macで顔文字を使う

2011年02月28日 過去Blog
windowsでは使う事も多かった顔文字もmacでは、特に使わないままで、やってきましたが、最近macでメールする事も増えてきて、顔文字を使いたいと思うようになったので、その設定のメモです。 1.顔文字辞書ダウンロード まず、顔文字辞書をダウンロードします。 今回は、こちらとこちらを利用させてもらいました。 2.ことえりに登録する ダウンロードしたファイルを解凍します。 その中から、必要な辞書…
「Macで顔文字を使う」をはてなブックマークに追加

preg_match

2010年03月24日 過去Blog
自分用メモ $html = ブログから抜き出したソース; preg_match("/抜き出すパターン/", $html); 最初は正規表現が間違っているのかと思い、いくつか正規表現のパターンを変えてテストしてみましたが、手ごたえなし(´;ω;`)ウッ… 正規表現以外の問題だと思い、さらに基本的なことを調べてみると・・・ 「検索対象の文字列が1行か、複数行か。」 ここが問題だったようです…
「preg_match」をはてなブックマークに追加

zencartを「アップグレード・移行」する際の「やり方・注意点」

2009年11月18日 過去Blog
zencart1.2系から1.3系へのアップグレードおよび、移行作業は大変な労力が必要になります。 アップグレードも移行も基本的には同じだと思うので、移行作業をするものとして説明します。 …
「zencartを「アップグレード・移行」する際の「やり方・注意点」」をはてなブックマークに追加
© graffiti on the web . All rights reserved. WordPress Theme by comfy