share facebook facebook twitter menu hatena pocket slack

2011.09.06 TUE

Apacheユーザでsudo

三浦 悟

WRITTEN BY 三浦 悟

PHPなどのサーバーサイドスクリプトなどでアクセス権のない他ユーザのファイルなどにシステムコマンドでアクセスする場合、Apacheユーザでsudoする必要があります。

例として、/home/memorycraftディレクトリをmkdirとlsをしたい場合、以下のように設定します。

○スクリプト(例:php)

exec("sudo mkdir /home/memorycraft/hoge; sudo ls -l /home/memorycraft/;", $out, $status);

○sudoの設定

# yum install sudo
# visudo
---------------------
Defaults    requiretty
コメントアウト↓
#Defaults    requiretty

追記↓
apache  ALL=(ALL) NOPASSWD: /bin/mkdir, /bin/ls

通常では、ログインできるユーザしかsudoを使用できないようになっていますが、requirettyという制限で、上記のようにコメントアウトすることで
手早くログイン可能なユーザ以外でもsudoすることができます。

また、Apacheユーザの登録では、NOPASSWD:の後にコマンドを指定することで、特定のコマンドだけパスワードなしでsudo実行できるように制限をすることができます。

このようにすることで、Apacheユーザで実行しているスクリプトでsudo操作が可能です。

こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら

三浦 悟

三浦 悟

高円寺在住のなんじゃ系男子 またの名をmemorycraftといいます。 炭水化物大好き 日々の「なんじゃ?」を記事にしてます。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。