Linuxユーザー権限の問題

Linuxユーザー権限の問題

"eclipse"で新しいファイルを作成するたびに読み取り/書き込み権限を取得するには、次の2行のコードを実行する必要があります。

chmod -R 775 /var/www/folder/filename.extension

そして/または

sudo chown -R www-data:www-data /var/www

そして、いくつかのファイルを適切なサーバーフォルダにコピーし、次のブラウザURLからアクセスした場合:

localhost/folder/filename.extension

Apacheサーバーで許可エラーが発生します。

この問題を取り除く方法はありませんか?

*ノート:move_uploaded_file()私の機能がファイルをディレクトリに移動しようとすると、/var/www/MyProject/主なエラーが発生します。

答え1

SGID ビットを使用します。

一度だけ実行し、この問題を忘れてください。

chmod g+s /var/www/folder

すべてのサブフォルダに対して同じことができます。

find /var/www/folder -type d | xargs chmod g+s

そして、万が一の場合に備えて:

find /var/www/folder -type d | xargs chgrp www-data

/var/www/folder/今何があっても、その下に作成されたすべてのファイルは、含まれているフォルダを所有するグループに属します。これにより、ファイルやフォルダが属していないことを心配することなくファイルやフォルダを作成できます。www-データグループ、それはあなたが望むものです。

これは、ディレクトリ内に作成されたファイルまたはフォルダにのみ適用されます。ファイルが別の場所に作成され、ディレクトリツリーに移動された場合でも、所有権を手動で変更する必要があります。

例:

# Create folder that belongs to www-data group
$ mkdir test
$ chown john.www-data test
$ ls -l

drwxr-xr-x 2 john www-data 4096 Jun 17 10:14 test

# Create a file, check the ownership
$ touch test/file1
$ ls -l test/

-rw-r--r-- 1 john users       0 Jun 17 10:16 file1

# Set the SGID bit
$ chmod g+s test
$ ls -l

drwxr-sr-x 2 john www-data 4096 Jun 17 10:19 test

# Create a file, check the ownership
$ touch test/file2
$ ls -l test/

-rw-r--r-- 1 john users       0 Jun 17 10:18 file1
-rw-r--r-- 1 john www-data    0 Jun 17 10:19 file2

追加情報ここ

答え2

デフォルトのACLを使用して、新しいファイルとディレクトリにユーザーとグループの権限を割り当てることができます。

setfacl -dR u:domain:rwx,g:www-data:rwx /var/www/folder/filename.extension

答え3

まず、たとえば、どのオペレーティングシステム、Linuxディストリビューションを使用しているかを尋ねるとき、より具体的でなければならないことを指摘したいと思います。これにより、ソリューションを見つけるプロセスが大幅に高速化される可能性があります。そう言えば、あなたは変更することができます所有権そして共同支援センター(ユーザーアクセス制御)を次のように繰り返し実行します。

chown domain:www-data /var/www/folder -chR

chmod 775 /var/www/folder -cR

ノート: 末尾のスラッシュを除く(/)フォルダ名の末尾に、変更はフォルダとそのフォルダのすべての内容に適用されます。


ブラウザからファイル(スクリプト?)にアクセスしたときに発生する権限エラーは、ユーザーがapache/etc/httpd/*/httpd.conf

User domain
Group www-data

関連情報