特定のパーミッションのファイルを検索して、パーミッションを変更する

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, ディレクトリ・ファイル操作 > 特定のパーミッションのファイルを検索して、パーミッションを変更する
「パーミッションを一括で変更したいが、対象ファイルを間違えて適用してしまわないか心配」

find コマンドの -ok オプションと -exec オプションを組み合わせれば、特定のパーミッションを持つファイルを検索しながら、そのまま chmod で変更できます。-ok を使えば実行前に確認が入るので安心です。

この記事では、find コマンドを使って特定のパーミッションのファイルを検索し、パーミッションを変更する方法を解説します。
【この記事でわかること】
・find の -ok オプションで変更前に1件ずつ確認プロンプトを表示できる
・-exec オプションは確認なしで一括実行するため本番環境では注意が必要
・-perm で検索対象のパーミッションを指定し、chmod で変更先を指定する
・実務では -ok で動作確認してから -exec に切り替えるのがセオリー


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

-ok オプションで確認しながらパーミッションを変更する

-ok オプションを使うと、該当ファイルごとに実行確認のプロンプトが表示されます。`y` を入力した場合のみコマンドが実行されます。

# 書式 find 検索パス -perm 変更前パーミッション -ok chmod 変更後パーミッション {} \; # 例: パーミッション664のファイルを755に変更(確認あり) [root@server ~]# find /home/pakira/ -perm 664 -ok chmod 755 {} \; < chmod ... /home/pakira/test_file.txt > ? y < chmod ... /home/pakira/test_file1.txt > ? y < chmod ... /home/pakira/test_file2.txt > ? y

変更後に ls -l で確認します。

[root@server ~]# ls -l /home/pakira/ -rwxr-xr-x 1 pakira pakira 0 10月 29 01:08 test_file.txt -rwxr-xr-x 1 pakira pakira 0 10月 29 01:08 test_file1.txt -rwxr-xr-x 1 pakira pakira 0 10月 29 01:08 test_file2.txt

-exec オプションで確認なしに一括変更する

-exec オプションは確認なしで即座に実行します。対象件数が多い場合や自動化スクリプトで使用しますが、本番環境では必ず -ok で動作確認してから切り替えてください。

# 確認なしで一括実行(本番環境では要注意) [root@server ~]# find /home/pakira/ -perm 664 -exec chmod 755 {} \;

実務Tips:-ls オプションと組み合わせて変更前に確認する

-ls オプションを追加すると、chmod 実行前に該当ファイルの詳細情報(inode番号・パーミッション等)を表示できます。

# -ls で詳細確認してから -ok で変更実行 [root@server ~]# find /home/pakira/ -perm 664 -ls -ok chmod 755 {} \; 652811 0 -rw-rw-r-- 1 pakira pakira 0 10月 29 01:08 /home/pakira/test_file.txt < chmod ... /home/pakira/test_file.txt > ? y

本記事のまとめ

やりたいこと コマンド
確認しながらパーミッションを変更 find パス -perm 664 -ok chmod 755 {} \;
確認なしで一括変更(自動化用) find パス -perm 664 -exec chmod 755 {} \;
詳細確認しながら変更 find パス -perm 664 -ls -ok chmod 755 {} \;

パーミッション管理を体系的に学んで安全なLinux運用を実現しませんか?

ファイルのパーミッション設定を誤ると、セキュリティ事故に直結します。現場で安全に扱える知識を体系的に身につけることが重要です。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。