カテゴリ: Linuxコマンド集 更新日: 2025/11/27

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

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

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

生徒

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

先生

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

生徒

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

先生

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

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

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

Linuxのパーミッション(権限)とは、「そのファイルを誰が読めるか」「誰が書き込めるか」「実行できるか」を決めるルールのことです。人間でいえば、鍵付きの引き出しみたいなものです。

パーミッションは、「所有者」「グループ」「その他のユーザー」の3つに分かれていて、それぞれに「読み取り(r)」「書き込み(w)」「実行(x)」の権限を設定できます。

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
ファイル・ディレクトリ操作
stat -Lオプションの使い方を解説|シンボリックリンクをたどってファイル情報を確認しよう
New2
ファイル・ディレクトリ操作
realpath -eオプションの使い方を解説!Linuxで存在するファイルのみ絶対パスを取得する方法
New3
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
New4
ファイル・ディレクトリ操作
touch --referenceオプションの使い方を完全ガイド!初心者でもわかるタイムスタンプのコピー方法
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
ファイル・ディレクトリ操作
rmコマンドとは?Linuxでファイルやディレクトリを削除する基本
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cpコマンドとは?Linuxでファイルやディレクトリをコピーする基本操作を初心者向けに解説
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
lsコマンドとは?Linuxでファイルやディレクトリを一覧表示する基本を初心者向けに解説