はじめに
Linuxなどのマルチユーザーシステムでは、許可されたユーザーだけが本来のファイルにアクセスできるように、ファイルのアクセス許可を設定および管理する必要があります。
ファイル権限を変更する必要がある場合は、 chmod
を使用してください 指図。また、ファイルのアクセス許可を再帰的に変更することもできます。 1つのコマンドを使用して複数のファイルとサブディレクトリを構成します。
このチュートリアルでは、Linuxでchmodを再帰的に使用し、ファイルのアクセス許可を変更する方法を学習します。
前提条件
- コマンドライン/ターミナルウィンドウ( Ctrl + Alt + T またはCtrl + Alt + F2 )
- sudoのユーザーアカウント 特権(オプション)
- Linuxシステム
ファイルのアクセス許可を確認する
作業ディレクトリのファイル権限を確認する必要がある場合は、次のコマンドを使用します。
ls –l
出力には、ディレクトリ内のすべてのファイルのアクセス許可が一覧表示されます。
たとえば、例 ディレクトリには3つのファイルが含まれています( test1.txt 、 test2.txt 、および test3.txt )同じ権限( -rw-rw-r – 。
上記のファイル権限は、次のことを示しています。
- 所有者 読み取りおよび書き込み権限があります
- 所有者のグループ 読み取りおよび書き込み権限があります
- 他のユーザー 読み取り権限を持っている
権限を再帰的に変更する
基本的なchmod
を使用するのが一般的です 単一ファイルの権限を変更するコマンド。ただし、ディレクトリ内のすべてのファイルのアクセス許可を再帰的に変更する必要がある場合があります。
このような場合、 chmod recursive オプション( -R
または-recursive
)ディレクトリ(およびディレクトリに含まれるファイル)のアクセス許可を設定します。
ファイル権限を再帰的に変更するための構文は次のとおりです。
chmod -R [permission] [directory]
したがって、 755を設定するには 例のすべてのファイルに対する権限 ディレクトリには、次のように入力します。
sudo chmod -R 755 Example
このコマンドは、読み取り、書き込み、実行を提供します 所有者への特権( 7 )および読み取りと実行 他のすべての人へのアクセス( 55 。
findコマンドを使用して権限を変更する
ディレクトリとファイルに個別の権限を割り当てるには、 find
を使用できます コマンド。
基本的な構文には、 find
の使用が含まれます ファイル/ディレクトリを見つけてchmod
に渡すコマンド 権限を設定するには:
sudo find [directory] -type [d/f] -exec chmod [privilege] {} \;
-
[ディレクトリ]
を置き換えます 構成するファイルとサブディレクトリを保持するディレクトリパスを使用します。 - ディレクトリを検索するかどうかを指定します
-type d
またはファイル-type f
。 - ファイルを設定します
[privilege]
chmod
を使用 数値モードまたは記号モードを使用したコマンド。
ファイルに実行権限を割り当てないでください。一般的な設定には、次のコマンドの実行が含まれます。
sudo find Example -type d -exec chmod 755 {} \;
sudo find Example -type f -exec chmod 644 {} \;
この例では、ディレクトリに 755があります ( u =rwx、go =rx )特権。ファイルには 644(u =rw、go =r)特権があります。
例に移動すると、ディレクトリとファイルの権限設定が異なることを確認できます。 ディレクトリ(cdの例
)およびコンテンツの一覧表示( ls -l </ code>
)。出力は次のようになります。
特定のファイルのアクセス許可を再帰的に変更する
find
を組み合わせる chmod
を使用したコマンド 特定の種類のファイルの権限を変更するためにも使用できます。
ディレクトリ内の特定のファイルタイプの権限を変更するためのコマンド構文は次のとおりです。
find [directory] -name "*.[filename_extension]" -exec chmod [privilege] {} \;
たとえば、すべての .shを作成するには 現在のディレクトリ内のファイル実行可能 、次を使用します:
find . -name "*.sh" -exec chmod +x {} \;