PHPプログラム中でapacheユーザでchownする方法
PHPでブラウザからプログラムを動かして、
作成したファイルやフォルダの権限を変更したい場合のやり方。
通常はapacehユーザでファイルやフォルダが作成
されてしまうのでプログラム中でchownを実行したいの
だけれど、chownはrootで動かさないとなのでこのまま
単純にchownを実行しても権限やグループを変えることが
できない。
そこで、sudoでapacheユーザに特定のコマンドだけを許すように設定
を変更する。
# visudo
apache ALL=(ALL) NOPASSWD: /bin/mkdir, /bin/chown
上記の場合はapacheユーザにパスワード無しで「mkdir」と「chown」の実行を許可している。
他のコマンドも許可したければ、続けて記述していけばOK。
これで大丈夫かなと思って実行してみたらchownで変更できていない。
エラーログを見ると以下のメッセーが・・・。
「sudo: sorry, you must have a tty to run sudo」
SSHクライアントとかコンソールではエラーが出ないのに。。。
調べてみると「Defaults requiretty」をコメントアウトすればいいことが判明。
# visudo
Defaults requiretty ↓ #Defaults requiretty
するとエラーが出なくなり、無事にchownが実行できた。
■参考URL