2017-08-30 3 views
0

私の優先フォルダのサブフォルダにPHPを使用してファイルを作成しようとしています。新しいファイルの場所に基づいて異なるユーザーとグループのファイルを作成するPHP

私は、次のコマンドを使用しています:私は、次のエラーメッセージが表示さ

file_put_contents("/preferred_folder/subfolder/test_A.txt", "test_A"); 

を:

Warning: file_put_contents(preferred_folder/subfolder/test_A.txt): failed to open stream: Permission denied in /users/service/dummy_username/code.php on line ###. 

を、私は私のPuTTY経由で次のコマンドを使用して/ preferred_folder /サブフォルダ/のパーミッションをチェックします「dummy_username」としてログインしており、次の応答を受け取ります。

$ ls -l /preferred_folder/ 
drwxrwxr-x 7 1234567 1000001 120 Apr 30 13:35 subfolder 

「他のユーザー」の書き込み権限は有効になっていません。一方、私は、このユーザーまたはグループを認識しないので、私がチェック:

$ groups 1000001 
groups: 1000001: No such user 

また、「getentをpasswds 1234567」は、任意の値を返さない(と、それは「dummy_username」のために成功しません)。ここでそれは奇妙になる。私は健全性チェックとして他の2つの場所にファイルを作成しようとしました。最初のファイルには「他のユーザー」の書き込み権限があり、2番目のファイルには過去数年間のファイルの作成が成功しています。これらのケースでは

file_put_contents("/preferred_folder/test_B.txt", "test_B"); 
file_put_contents("https://stackoverflow.com/users/service/dummy_username/test_C.txt", "test_C"); 

は、両方のファイルが正常に作成されますが、ファイルのユーザーおよびグループは、次のような違い:

1:私はいくつかの質問が残ってる

$ ls -l /preferred_folder/test_B.txt 
-rw-r--r-- 1 ABCDEFG root 5 Aug 30 08:39 /preferred_folder/test_B.txt 

$ ls -l /users/service/dummy_username/test_C.txt 
-rw-r--r-- 1 dummy_username dummy_group 5 Aug 30 08:39 test_C.txt 

)なぜこのスクリプトから作成されたファイルのユーザーとグループが、ファイルの場所のみに基づいて異なるのですか?私は彼らが両方とも "dummy_username"によって所有されることを期待しています。

2)「ABCDEFG」というユーザーはなんですか?私は、 "root"グループにそのようなユーザーが明示的に含まれていないことを確認しました。

3)グループ「1000001」は何ですか?また、ユーザー「1234567」はそのグループの一部であることが知られていません。

4)最終的には、preferred_folderとその多くのレベルのサブフォルダのchmod 777 '以外に、目的のファイル作成のための「dummy_username」に特定のアクセス許可を与える適切かつ推奨される手段がありますか?

ご協力いただきありがとうございます。長期ビジター。 3回目のポスター。

答えて

0

許可を拒否する理由は、Webサーバー上でPHPを実行しているユーザーに、そのディレクトリに書き込む権限がないためです。

多くのnginx/apache設定では、ユーザがwww-dataにアクセスできるようにウェブサーバが設定されており、/var/www/htmlにアクセスできます。 Webアプリケーションのルートディレクトリ。

このディレクトリの外部に書き込むと、アクセス権のエラーが発生します。

/var/www/html以外のディレクトリにPHPがアクセスする理由は、端末向けのスクリプトを作成していない限り、ごくわずかです。

端末でPHPを実行している場合は、sudoを使用するか、そのディレクトリから読み書きする権限を持つユーザを作成し、そのユーザでスクリプトを実行します。

+0

ご回答ありがとうございます。@BugHunterUKこのユーザーを「/ preferred_folder/subfolder」(つまり「1000001」)を所有するグループに追加することで、「dummy_username」に特別なアクセス許可を付与したいと考えています。前述したように、dummy_usernameは、奇妙なユーザ/グループであってもpreferred_folderにファイルを作成できます。どのユーザー名がグループ1000001に追加するのが適切であるかはどのようにわかりますか?さらに、preferred_folderで新しく作成されたファイルを所有するユーザ/グループが/ users/service/dummy_username /と異なる理由を知ることができますか?どのような設定を見つけて変更できますか?ありがとう! –

+0

アップデート:ファイル所有権の仕組みを説明した[ACLs](https://unix.stackexchange.com/questions/115631/getting-new-files-to-inherit-group-permissions-on-linux)が指定される。 –

関連する問題