ファイルとディレクトリのアクセス許可を再帰的に変更するにはどうすればよいですか?


65

apache / php / mysqlを使用してローカルコンピューターにUbuntuをインストールしました。

現在、/ var / wwwにディレクトリがあり、その中には進行中のプロジェクトがいくつかあります。また、オープンソース(drupal、magento、sugarcrm)も使用しています。

私が直面している問題は、ターミナルのファイル許可を変更することです。ときどき、フォルダ全体とその後続のサブフォルダとファイルのアクセス許可を変更する必要があります。私は個別に変更する必要があります

sudo chmod 777 foldername

どうすればこれを再帰的に実行できますか。

また、なぜ私はいつも777をしなければならないのですか、私はフォルダに755、ファイルに644を試しましたが、それはうまくいきません。

回答:


90

-Rファイルの許可を再帰的に変更するオプションを追加するだけです。例として、所有者とグループの読み取りおよび書き込み権限を再帰的に追加しますfoldername

chmod -R ug+rw foldername

許可は664または775のようになります。

許可を777に設定することは非常に推奨されません。Apacheはあなたとは異なるユーザー(www-data)で実行されているため、Apacheまたはエディターで権限に関するエラーが発生します。

に書き込みたい場合は/var/wwwwww-dataグループに自分自身を追加し、それに応じてumask + permissionsを設定します。

  • www-dataグループに自分を追加します。sudo adduser $USER www-data
  • のファイルの所有権を変更します/var/wwwsudo chown -R www-data:www-data /var/www
  • umaskを変更して、Apacheによって新しく作成されたファイルがグループにも書き込み権限を付与するようにします。に追加umask 007/etc/apache2/envvarsます。
  • 自分(技術的にはグループwww-data)に書き込み権限を付与しますsudo chmod -R g+w /var/www

ええ、rフラグを間違った場所に追加していました。chmodのo + wの後に追加していました。
JohnMerlino

また、chmod -r blablabla
...-Cyril Duchon-Doris

1
これらの指示の後.htaccess、Apacheの書き込み許可を持つファイルがないことを確認することをお勧めします。find /var/www/ | grep .htaccess | xargs ls -l
レイノルズnlp

23

強引な:

sudo find foldername -exec chmod a+rwx {} ";"

機能しないものは何ですか?具体的に!

sudo find foldername -type d -exec chmod 755 {} ";"
sudo find foldername -type f -exec chmod 644 {} ";"

フォルダー内にいるときは、「フォルダー名」を削除します
エンリケ14

4
...そしてそれをに置き換えます。
djjeck

4

何も777は必要ありません。最悪の場合、特定のファイルとディレクトリの所有者を「www-data」ユーザーに変更する必要があります。

sudo find /var/www -type d -print0 | xargs -0 chmod 755
sudo find /var/www -type f -print0 | xargs -0 chmod 644
sudo find /var/www/some/subset -print0 | xargs -0 chown www-data:www-data

Lekensteynのグループメンバーシップメソッドを使用している場合、上記の755から775および644から664にそれぞれ変更し、グループのスティッキ性を強制します。

sudo find /var/www/some/subset -type d -print0 | xargs -0 chmod g+s


1

すべてのファイルを世界中で読めるようにしたい場合(つまり、静的なHTMLファイル/イメージのセット)、次のコマンドを使用します。

chmod -R a+r <base directory>

これにより、すべてのファイルとサブディレクトリが再帰的に処理され、読み取り許可が追加されます。

警告:実行可能なファイルにはこれをしないでください!誰でも見ることができるファイルのみ。


あなたは「chmod -R a+x何にもしない」と言っていますか、それとも「chmod -R a+r実行可能ファイルにはしない」と言っていますか
アレクラソン

それを私が直した。後者は本当です。作成した実行可能ファイルへのアクセスを他人に許可することに注意してください。
ライアン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.