フォルダーとそのサブフォルダー/ファイルのアクセス許可を1つのステップで変更するにはどうすればよいですか?

2010年09月18日に質問されました。  ·  閲覧回数 4.2M回  ·  ソース

Adam Halasz picture
2010年09月18日

Linuxで1つのステップ(コマンド)でフォルダーとそのすべてのサブフォルダーおよびファイルのアクセス許可を変更したいと思います。

私はすでに以下のコマンドを試しましたが、それは言及されたフォルダーに対してのみ機能します:

chmod 775 /opt/lampp/htdocs

/opt/lampp/htdocsとそのすべてのコンテンツ(サブフォルダーとファイルを含む)にchmod 755を設定する方法はありますか?

また、将来、 htdocs内に新しいフォルダーまたはファイルを作成した場合、そのアクセス許可を自動的に755設定するにはどうすればよいですか?

私もこのリンクを見ました:

http://stackoverflow.com/questions/3740187/how-to-set-default-chmod-in-linux-terminal

回答

WombleGoneBad picture
2012年07月17日
3085

chmod -R 755は、ツリー内のすべてのファイルとサブフォルダーにこれらのアクセス許可を設定するという点で、他の答えは正しいです。 しかし、一体

本当にやりたいことは、ディレクトリを755に設定し、ファイルをそのままにするか、644に設定することだと思います。これには、 findコマンドを使用できます。 例えば:

すべてのディレクトリを755( drwxr-xr-x )に変更するには:

find /opt/lampp/htdocs -type d -exec chmod 755 {} \;

すべてのファイルを644( -rw-r--r-- )に変更するには:

find /opt/lampp/htdocs -type f -exec chmod 644 {} \;
Steve Robillard picture
2010年09月18日
800

-Rオプションを確認してください

chmod -R <permissionsettings> <dirname>

将来的には、最初にマニュアルページを確認することで多くの時間を節約できます。

man <command name>

したがって、この場合:

man chmod
Pete picture
2013年02月01日
403

すべてのファイルのアクセス許可をa+rに設定し、すべてのディレクトリをa+xに設定し、完全なサブディレクトリツリーを介して再帰的に設定する場合は、次を使用します。

chmod -R a+rX *

X (つまり、大文字のX 、小さくないx !)は、ファイルでは無視されますが(既に誰かが実行できる場合を除く)、ディレクトリに使用されます。

ravi ranjan picture
2014年04月19日
154

-Rchmodを使用して、すべてのファイルとサブフォルダーを再帰的にトラバースできます。

現在のユーザーまたは別のユーザーによってインストールされているLAMPに依存するため、sudoが必要になる場合があります。

sudo chmod -R 755 /opt/lampp/htdocs
Pramendra Gupta picture
2010年09月18日
83

正しい再帰コマンドは次のとおりです。

sudo chmod -R 755 /opt/lampp/htdocs

-R :現在のフォルダを含むすべてのサブフォルダを変更します

Topera picture
2010年09月18日
78

すべてのサブフォルダーに(再帰的に)設定するには、-Rを使用します

chmod 755 /folder -R

そして、umaskを使用して、デフォルトを新しいフォルダ/ファイルに設定しますcd / folder umask 755

sleepynate picture
2010年09月18日
54

chmod 755 -R /opt/lampp/htdocsは、権限を再帰的に設定します。 権限を設定した後に作成されるこのディレクトリのみにファイルの権限を自動的に設定する方法はありませんが、 umask 022設定することで、システム全体のデフォルトのファイル権限を変更できます。

Iam Zesh picture
2013年02月27日
30

スーパーユーザーのnikによって与えられたこの回答を検討し

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
chrisfargen picture
2013年11月17日
22

ディレクトリを775に、ファイルを664に設定する別の方法があります。

find /opt/lampp/htdocs \
\( -type f -exec chmod ug+rw,o+r {} \; \) , \
\( -type d -exec chmod ug+rwxs,o+rx {} \; \)

長く見えるかもしれませんが、次の3つの理由でかなりクールです。

  1. ファイルシステムを2回ではなく、1回だけスキャンします。
  2. ファイルの処理方法とディレクトリの処理方法をより適切に制御できます。 これは、ファイルではなくディレクトリに適用したいスティッキービットなどの特別なモードで作業する場合に便利です。
  3. manページから直接テクニックを使用します(以下を参照)。

このソリューションと、(Peter Mortensenのソリューションのように)2つのfindコマンドを使用した場合のパフォーマンスの違い(ある場合)は確認していないことに注意してください。 ただし、マニュアルで同様の例を見るのは心強いです。

man findページの例:

find / \
\( -perm -4000 -fprintf /root/suid.txt %#m %u %p\n \) , \
\( -size +100M -fprintf /root/big.txt %-10s %p\n \)

Traverse the filesystem just once, listing setuid files and  direc‐
tories into /root/suid.txt and large files into /root/big.txt.

乾杯

Nate Starner picture
2010年09月18日
21

使用する:

sudo chmod 755 -R /whatever/your/directory/is

ただし、注意してください。 間違ったファイル/フォルダのアクセス許可を変更すると、本当に傷つく可能性があります。