PHPプログラム中でapacheユーザでchownする方法


PHPプログラム中でapacheユーザでchownする方法 | Bamboo lath 日々の記録

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

Apacheユーザーでsudo

TTY経由でないsudoの実行

コメントを残す

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