GNU/Linux >> Linux の 問題 >  >> Linux

Linuxでchmodを使用してファイルパーミッションを再帰的に変更する方法

はじめに

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

Linux
  1. LinuxファイルでACLを表示または変更する方法

  2. 単一のファイルの権限を変更するにはどうすればよいですか?

  3. ファイルとフォルダーのアクセス許可を変更する方法を学ぶ

  1. LinuxでSUIDおよびSGID権限を持つファイルを検索する方法

  2. Linuxでのファイルパーミッションと例

  3. Linuxでchmod(モード変更)コマンドを使用する方法

  1. Linuxですべてのディレクトリのファイルを再帰的に検索する方法

  2. Linuxパーミッション:chmodの紹介

  3. Linuxのchmodとchown–Linuxでファイルのパーミッションと所有権を変更する方法