2093

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

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

chmod 775 /opt/lampp/htdocs

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

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

私もこのスタックオーバーフローの質問を見ました:

Linux端末でデフォルトの「chmod」を設定するにはどうすればよいですか?

4

20 に答える 20

3322

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 {} \;

いくつかの非難: (thanks @ tobbez )

  • chmod 755 {}find各ディレクトリに対して実行されるコマンドを指定します
  • chmod 644 {}find各ファイルに対して実行されるコマンドを指定します
  • {}パスに置き換えられます
  • ;セミコロンはfind、これが実行するコマンドの終わりであることを示します
  • \;セミコロンはエスケープされます。それ以外の場合は、代わりにシェルによって解釈されますfind
于 2012-07-16T20:42:23.790 に答える
850

-Rオプションをチェックします

chmod -R <permissionsettings> <dirname>

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

man <command name>

したがって、この場合:

man chmod
于 2010-09-18T02:36:12.820 に答える
427

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

chmod -R a+rX *

(これXは大文字Xであり、小文字ではありませんx!) は、ファイルに対しては無視されます (すでに誰かが実行可能でない限り) が、ディレクトリに対しては使用されます。

于 2013-01-31T20:39:26.010 に答える
175

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

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

sudo chmod -R 755 /opt/lampp/htdocs
于 2014-04-19T15:43:56.107 に答える
91

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

sudo chmod -R 755 /opt/lampp/htdocs

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

于 2010-09-18T02:40:57.377 に答える
88

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

chmod 755 /folder -R

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

于 2010-09-18T02:35:59.167 に答える
59

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

于 2010-09-18T02:38:42.453 に答える
32

スーパーユーザーのnikによるこの回答を検討し、次のようなすべてのファイル/フォルダーに「onechmod」を使用することをお勧めします。

chmod 755 $(find /path/to/base/dir -type d)
chmod 644 $(find /path/to/base/dir -type f)
于 2013-02-27T06:42:05.860 に答える
23

ディレクトリを 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ます (以下を参照)。

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

ページの例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 direct‐
tories into /root/suid.txt and large files into /root/big.txt.

乾杯

于 2013-11-17T05:47:18.657 に答える
21

使用する:

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

ただし、注意してください。間違ったファイル/フォルダのパーミッションを変更すると、本当に傷つく可能性があります。

于 2010-09-18T02:37:58.303 に答える
12

Mac OS X 10.7 (Lion) の場合:

chmod -R 755 /directory

はい、他のすべての人が言うように、これを行うときは注意してください。

于 2012-07-10T09:33:35.670 に答える
11

適切なファイルとディレクトリが chmod-ed/permissions であることを確認する必要があります。必要なすべてのディレクトリ

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

そして、すべての画像、JavaScript、CSS、HTML については、実行しないでください。だから使う

chmod 644 img/* js/* html/*

ただし、すべてのロジック コード (たとえば PHP コード) については、ユーザーがそのコードを表示できないようにアクセス許可を設定する必要があります。

chmod 600 file
于 2014-01-12T04:03:46.843 に答える
8

ファイルを見つけて適用chmodするという2つの答えがあります。

最初のものはfindファイルであり、chmod見つかったときに適用されます (@WombleGoneBad で提案されているように)。

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

2 番目の解決策は、コマンドですべてのファイルのリストを生成し、findこのリストをコマンドに提供するchmodことです (@lamgesh の提案に従って)。

chmod 755 $(find /path/to/base/dir -type d)

findコマンドによって返されるファイルの数が少ない限り、これらのバージョンはどちらも問題なく動作します。2 番目のソリューションは、最初のソリューションよりも見栄えがよく、読みやすくなっています。多数のファイルがある場合、2 番目のソリューションはエラーを返します。Argument list too long.

だから私の提案は

  1. chmod -R 755 /opt/lampp/htdocsすべてのファイルとディレクトリの権限を一度に変更する場合に使用します。
  2. 使用find /opt/lampp/htdocs -type d -exec chmod 755 {} \;するファイル数が非常に多い場合に使用します。この-type xオプションは、特定のタイプのファイルのみを検索します。d はディレクトリの検索に、f はファイルの検索に、l はリンクの検索に使用されます。
  3. chmod 755 $(find /path/to/base/dir -type d)他の方法で使用する
  4. どのような状況でも最初のものを使用することをお勧めします
于 2013-07-29T10:47:25.487 に答える
1

とても簡単です。

ターミナルで、ファイル マネージャーに移動します。例: sudo nemo. に移動し、[プロパティ] → [権限/opt/] をクリックします。そしてその他。最後に、作成と削除、ファイル アクセスを読み取り書き込みに変更し、[適用...] ボタンをクリックします。

于 2014-06-16T09:34:49.543 に答える
-1

使用する:

sudo chmod -R a=-x,u=rwX,g=,o= folder

所有者 rw、他はアクセス不可、rwx のディレクトリ。これにより、ファイルの既存の「x」がクリアされます。

シンボリック chmod 計算はChmod 744で説明されています。

于 2021-01-31T06:23:02.100 に答える