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

Linuxでのアクセス許可に基づいてファイルを検索する方法

Linuxのコマンドラインからファイルを検索する方がはるかに簡単で高速です。 アクセスと変更の日時に基づいてファイルを検索して並べ替える方法については、すでに説明しました。 。今日は、LinuxおよびUnixライクなオペレーティングシステムでのアクセス許可に基づいてファイルを検索する方法を説明します。

このガイドでは、 file1という3つのファイルを作成します。 file2 およびfile3 権限あり777 766 655 それぞれostechnixという名前のフォルダにあります

$ mkdir ostechnix && cd ostechnix/
$ install -b -m 777 /dev/null file1
$ install -b -m 766 /dev/null file2
$ install -b -m 655 /dev/null file3

次に、権限に基づいてファイルを検索します。

権限に基づいてファイルを検索

アクセス許可に基づいてファイルを検索するための一般的な構文は次のとおりです。

$ find -perm mode

MODE 数値のいずれかを使用できます または8進数 権限(777など 、666 、...など)またはシンボリックパーミッション(u=xなど) 、a=r+x

MODEを指定できます 以下に示す3つの異なる方法で。

  1. プレフィックスなしでモードを指定すると、正確のファイルが検索されます 権限。
  2. "-"を使用する場合 モードのプレフィックスを付けるには、少なくともファイルには、正確な権限ではなく、指定された権限が必要です。
  3. "/"を使用する場合 プレフィックス、所有者、グループ、またはその他のいずれかがファイルへのアクセス許可を持っている必要があります。

理解を深めるために、いくつかの例を挙げて説明させてください。

まず、数値のアクセス許可に基づいてファイルを検索します。

数値(8進数)のアクセス許可に基づいてファイルを検索します

次に、次のコマンドを実行します。

$ find -perm 777

このコマンドは、正確に777の権限を持つファイルを検索します 現在のディレクトリにあります。

上記の出力でわかるように、file1は正確な777権限を持っている唯一のものです。 。

それでは、"-"を使用しましょう プレフィックスを付けて、何が起こるかを確認します。

$ find -perm -766

ご覧のとおり、上記のコマンドは2つのファイルを表示します。 766を設定しました file2へのアクセス許可 、しかしこのコマンドは2つのファイルを表示します、なぜですか?なぜなら、ここでは"-"を使用したからです。 プレフィックス。これは、このコマンドが、ファイル所有者が読み取り/書き込み/実行権限を持ち、ファイルグループメンバーが読み取り/書き込み権限を持ち、他のすべても読み取り/書き込み権限を持っているすべてのファイルを検索することを意味します。この場合、file1 およびfile2 この基準を満たしています。つまり、ファイルは正確な766権限を持っている必要はありません。この766権限に該当するファイルが表示されます。

次に、"/"を使用します プレフィックスを付けて、何が起こるかを確認します。

$ find -perm /222

上記のコマンドは、誰か(所有者、グループ、または他の誰か)が書き込み可能なファイルを検索します。別の例を示します。

$ find -perm /220

このコマンドは、所有者またはグループのいずれかが書き込み可能なファイルを検索します。つまり、ファイルは書き込み可能である必要はありません 所有者とグループの両方 一致する; どちらか します。

ただし、"-"を使用して同じコマンドを実行した場合 プレフィックスを付けると、所有者とグループの両方が書き込み可能なファイルのみが表示されます。

$ find -perm -220

次のスクリーンショットは、これら2つのプレフィックスの違いを示しています。

すでに述べたように、ファイルのアクセス許可を表すために記号表記を使用することもできます。

記号表記を使用してアクセス許可に基づいてファイルを検索

次の例では、 uなどの記号表記を使用しています。 (ユーザーの場合)、 g (グループ)、 o (その他)。 aという文字を使用することもできます これらの3つのカテゴリすべてを表します。権限は、 rの文字を使用して指定できます (読む)、 w (書き込み)、 x (実行可能)。

たとえば、グループが書き込みのファイルを検索するには 許可、実行:

$ find -perm -g=w

上記の例でわかるように、file1 およびfile2 グループを書く 許可。 "="のいずれかを使用できることに注意してください または"+" 記号表記の演算子。たとえば、次の2つのコマンドは同じことを行います。

$ find -perm -g=w
$ find -perm -g+w

ファイル所有者が書き込み可能なファイルを見つけるには、次のコマンドを実行します。

$ find -perm -u=w

すべての人(ファイルの所有者、グループ、その他すべての人)が書き込み可能なファイルを見つけるには、次のコマンドを実行します。

$ find -perm -a=w

両方で書き込み可能なファイルを検索するには 彼らの所有者 とそのグループ 、次のコマンドを使用します:

$ find -perm -g+w,u+w

上記のコマンドは、"find -perm -220"と同等です。 コマンド。

どちらかで書き込み可能なファイルを検索するには 彼らの所有者 またはそのグループ 、実行:

$ find -perm /u+w,g+w

または、

$ find -perm /u=w,g=w

これらの2つのコマンドは、"find -perm /220"と同じ役割を果たします。 コマンド。

詳細については、manページを参照してください。

$ man find

また、マニュアルページの代替案を確認してください Linuxコマンドのより単純化された例を学ぶため。

関連記事:

  • Linuxで最大および最小のディレクトリとファイルを見つける方法
  • Linuxのディレクトリツリーで最も古いファイルを見つける方法
  • LinuxでXサイズよりも大きいまたは小さいファイルを検索する方法

Linux
  1. Linuxでfdコマンドを使用してファイルを検索する方法

  2. Linuxで過去30日間に変更されたファイルを見つける方法は?

  3. Linux で絶対パスを使用してファイルのリストを生成するにはどうすればよいですか?

  1. Linuxで変更日時に基づいてファイルを検索およびソートする方法

  2. ファイルを見つけてそのサイズを合計するにはどうすればよいですか?

  3. Linuxでパーティションのすべてのファイルを一覧表示する方法は?

  1. Linuxで最近または今日変更されたファイルを見つける方法

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

  3. Linuxで重複ファイルを見つける方法