カテゴリ: Linuxコマンド集 更新日: 2026/02/08

find -permオプションの使い方を完全解説!初心者でもできるパーミッション検索

find -permオプション|パーミッションで検索する方法
find -permオプション|パーミッションで検索する方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxで、特定のアクセス権(パーミッション)を持ったファイルだけを探すことってできますか?」

先生

「できるよ!そのときはfindコマンドの-permオプションを使うと便利だよ。」

生徒

「パーミッションって何ですか?なんだか難しそうです…」

先生

「大丈夫、順番にゆっくり説明していくから、安心してね!」

1. パーミッションとは?

1. パーミッションとは?
1. パーミッションとは?

Linuxにおけるパーミッション(Permission)とは、ファイルやディレクトリに対して「誰が」「どのような操作をできるか」を定めた利用権限のことです。パソコンの中にある大切な書類を、勝手に見られたり書き換えられたりしないための「鍵」のような役割を果たします。

この権限は、以下の3種類のユーザー層に対して個別に設定されます。

  • 所有者(Owner): そのファイルを作成した本人。
  • グループ(Group): 同じプロジェクトチームなど、特定の仲間の集まり。
  • その他(Others): 所有者でもグループでもない、第三者のユーザー全員。

さらに、それぞれのユーザーが「読み取り(r)」「書き込み(w)」「実行(x)」の3つのアクションを許可されているかを確認します。例えば、料理のレシピ本に例えると以下のようになります。

  • 読み取り(r): 本の内容を読むことができる(ファイルの中身を見る)。
  • 書き込み(w): 本にメモを書き込んだりページを破いたりできる(ファイルの上書きや削除)。
  • 実行(x): レシピ通りに料理を作る(プログラムやスクリプトを動かす)。

実際のコマンド画面で、ファイルにどのような権限がついているかを確認してみましょう。プログラミングが初めての方でも、ls -lというコマンドを打つだけで簡単にチェックできます。


ls -l
-rwxr-xr-- 1 user1 staff 1024 Feb  4 09:00 sample.txt

左端に表示された-rwxr-xr--という文字列がパーミッションの正体です。この見方をマスターすれば、Linuxのセキュリティ管理の第一歩は完璧です。次の章では、これらを検索するための具体的な方法を解説します。

2. find -permオプションとは?

2. find -permオプションとは?
2. find -permオプションとは?

findコマンドの-permオプションは、「パーミッション(アクセス権)」を条件にしてファイルやディレクトリを検索するためのオプションです。

例えば、「すべてのユーザーに実行権限があるファイル」を探したいときに使います。

3. パーミッションの表記方法

3. パーミッションの表記方法
3. パーミッションの表記方法

パーミッションは、数値(8進数)で指定するのが一般的です。

  • r(読み取り) → 4
  • w(書き込み) → 2
  • x(実行) → 1

それぞれを足し合わせて、所有者・グループ・その他に順番で並べます。

例:755は「所有者が読み書き実行、他は読みと実行」

4. -permオプションの使い方(基本)

4. -permオプションの使い方(基本)
4. -permオプションの使い方(基本)

たとえば、パーミッションが777(全員が読み書き実行できる)ファイルを探したいときは、次のように書きます。


find /path/to/dir -perm 0777
/path/to/dir/public.sh
/path/to/dir/tmp_file

先頭の0は8進数であることを示しています。

5. 一部のパーミッションだけを検索するには?

5. 一部のパーミッションだけを検索するには?
5. 一部のパーミッションだけを検索するには?

すべての権限が一致しないとマッチしないのが-perm 0777の特徴です。
「一部だけ該当すればOK」という柔軟な検索をしたい場合は、-を先頭に付けます。

例:実行権限(x)を持っていればよい場合


find /path/to/dir -perm -001
/path/to/dir/run.sh

このように、1桁だけの指定も可能です。もちろん、3桁すべて指定して柔軟に検索することもできます。

例:誰かが実行できるファイルを探す


find /path/to/dir -perm -111
/path/to/dir/start.sh
/path/to/dir/test_exec

6. パーミッションが完全一致するファイルだけを探す(=)

6. パーミッションが完全一致するファイルだけを探す(=)
6. パーミッションが完全一致するファイルだけを探す(=)

=を付けると、「完全に一致するパーミッションだけ」を対象にします。

例:パーミッションが600のファイルだけを探す


find /home/user -perm =600
/home/user/secret.txt

これは「所有者だけが読み書きでき、他の人は何もできない」ファイルです。

7. 特殊パーミッションの検索(setuid・setgid・sticky)

7. 特殊パーミッションの検索(setuid・setgid・sticky)
7. 特殊パーミッションの検索(setuid・setgid・sticky)

setuid(4000)setgid(2000)stickyビット(1000)も検索できます。

  • setuid:実行時に所有者の権限で動作
  • setgid:実行時にグループの権限で動作
  • sticky:他人のファイル削除防止(/tmpなど)

例:setuidが付いたファイルを検索


find / -perm -4000
/usr/bin/passwd

8. 他のオプションと組み合わせた例

8. 他のオプションと組み合わせた例
8. 他のオプションと組み合わせた例

-permは他の条件と組み合わせることで、さらに便利に使えます。

例:サイズが1MB以上かつ実行可能なファイルを検索


find /usr/local/bin -size +1M -perm -111
/usr/local/bin/large_script

例:7日以内に更新された、読み書き可能なファイル


find /var/tmp -mtime -7 -perm -600
/var/tmp/edit.txt

9. パーミッションの確認方法

9. パーミッションの確認方法
9. パーミッションの確認方法

ファイルやディレクトリの現在のパーミッションを調べるには、ls -lコマンドを使います。


ls -l script.sh
-rwxr-xr-- 1 user1 devgroup 2048 Sep 16 09:00 script.sh

このように、最初の-rwxr-xr--の部分がパーミッションです。
数値に直すと754になります。

関連記事:
カテゴリの一覧へ
新着記事
New1
ファイル・ディレクトリ操作
touch --versionオプションの使い方を完全ガイド!初心者でもわかるバージョン確認方法
New2
ファイル・ディレクトリ操作
find -deleteオプションを完全解説!初心者でもできるLinuxファイル削除の基本
New3
ファイル・ディレクトリ操作
mv --helpオプションの使い方|Linuxでmvコマンドの使い方やオプションを確認する方法
New4
ファイル・ディレクトリ操作
rm --versionオプションの使い方!Linuxでバージョン情報を確認する方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
basenameの--helpオプションを使ってヘルプ表示!オプション一覧でLinuxコマンドを理解しよう
No.4
Java&Spring記事人気No4
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!