Linuxをメインオペレーティングシステムとして使用している場合、またはLinuxサーバーを管理している場合、ファイルを作成または編集しようとすると、「アクセス許可の拒否」エラーが発生する状況が発生します。通常、不十分なアクセス許可に関連するエラーは、正しいファイルのアクセス許可または所有権を設定することで解決できます。
Linuxはマルチユーザーシステムであり、ファイルへのアクセスは、ファイルのアクセス許可、属性、および所有権によって制御されます。これにより、許可されたユーザーとプロセスのみがファイルとディレクトリにアクセスできるようになります。
ファイルパーミッションの詳細については、「LinuxのUmaskコマンド」を参照してください。
この記事では、ファイルとディレクトリのアクセス許可を再帰的に変更する方法について説明します。
Chmod Recursive#
chmod
コマンドを使用すると、記号モードまたは数値モードを使用してファイルのアクセス許可を変更できます。
特定のディレクトリの下にあるすべてのファイルとディレクトリを再帰的に操作するには、chmod
を使用します -R
を使用したコマンド 、(--recursive
) オプション。ファイルの権限を再帰的に変更するための一般的な構文は次のとおりです。
chmod -R MODE DIRECTORY
たとえば、/var/www/html
の下にあるすべてのファイルとサブディレクトリの権限を変更するには 755
へのディレクトリ 使用するもの:
chmod -R 755 /var/www/html
モードは、シンボリックメソッドを使用して指定することもできます:
chmod -R u=rwx,go=rx /var/www/html
root、ファイル所有者、またはsudo
を持つユーザーのみ 特権はファイルのパーミッションを変更できます。ファイルのアクセス許可を再帰的に変更する場合は、特に注意してください。
find
の使用 コマンド#
一般に、ファイルとディレクトリは同じ権限を持つべきではありません。ほとんどのファイルは実行権限を必要としませんが、ディレクトリに変更するには、ディレクトリに実行権限を設定する必要があります。
最も一般的なシナリオは、Webサイトファイルのアクセス許可を644
に再帰的に変更することです。 およびディレクトリの755
へのアクセス許可 。
数値的方法の使用:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
シンボリックメソッドの使用:
find /var/www/html -type d -exec chmod u=rwx,go=rx {} \;
find /var/www/html -type f -exec chmod u=rw,go=r {} \;
find
コマンドは、/var/www/html
の下のファイルまたはディレクトリを検索します 見つかった各ファイルまたはディレクトリをchmod
に渡します 権限を設定するコマンド。
find
を使用する場合 -exec
を使用 、chmod
見つかったエントリごとにコマンドが実行されます。 xargs
を使用する 複数のエントリを一度に渡すことで操作を高速化するコマンド:
find /var/www/html -type d -print0 | xargs -0 chmod 755
find /var/www/html -type f -print0 | xargs -0 chmod 644
結論#
chmod
-R
を使用したコマンド オプションを使用すると、ファイルの権限を再帰的に変更できます。
タイプに基づいてファイルのアクセス許可を再帰的に設定するには、chmod
を使用します find
と組み合わせて コマンド。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。