0

しようとするshell_exec('/home/user/scripts/./script')と、次のエラーが表示されます。

terminate called after throwing an instance of 'boost::filesystem3::filesystem_error'
  what():  boost::filesystem::create_directory: Permission denied: "/.script"
Aborted (core dumped)

shell_exec('whoami')www-dataWeb 向けの php スクリプトに戻ります。

ディレクトリとファイルへのアクセス許可はまったく同じです。

-rwxrwxr-x 1 user123   group456     8246 Jun 25 06:10 script
drwxrwxr-x 7 user123   group456     4096 Jul 10 14:54 . 

実際shell_exec('touch /home/user/scripts/test')、問題なくファイルを作成できます。

$ ls -l /home/user/scripts/test
-rw-r--r-- 1 www-data www-data          0 Jul 10 14:54 test123

これは、ユーザーごとにグループを設定する方法です。

$ groups user123
user123 : group456
$ groups www-data
www-data : group456

このエラーが発生するのはなぜですか?

4

2 に答える 2

1

実行中のスクリプトにタイプミスがあります。(相対パス)ではなく/.scriptルートフォルダーにフォルダーを作成しようとしています。./script

于 2013-07-10T15:16:53.797 に答える
0

スクリプトを実行しようとしている場合は、次のように実行/home/user/scripts/./scriptする必要がありますshell_exec('sh /home/user/scripts/script')

パスに追加する./と、解釈が異なります。

渡すとき-現在のディレクトリの./scriptファイル名を参照しています。script

また、システムがルート権限を取得するためにApacheを停止していることを示すcプログラムから実際にエラーが発生しています。audit2allowApache に必要な権限を付与することができます。

于 2013-07-10T15:13:53.990 に答える