はじめに
rootグループに属しているのに見れないファイルのディレクトリのパーミッションをfindで一括変更したくなりました。
具体的には/etcをGitで管理しているときに、zshがGitの変更を検出しようとディレクトリを探索するのですが、パーミッションにより弾かれてしまいました。
セキュリティポリシーにもよりますが、rootグループに属しているユーザであれば閲覧は良いかなと思います。
コマンド
実はこのコマンド、何度も調べているのですがよく忘れるのでメモ。
-exec
を-ok
にするとコマンドの確認ができます。便利。
以前はFreeBSD系で調べたりしましたが、OSによってfindのオプションが変わるので注意です。
今回の環境はCentOS7です。
$ sudo find /etc -type d -exec chmod g+rx {} \;
上記は-type d
でディレクトリに実行権限までつける、というものでした。
下記は所有者rootのファイルにグループのrをつける、というコマンド。
$ sudo find /etc -user root -perm +o+r -exec chmod g+r {} \;
ファイルに実行権限つけるとlsした時にファイルが(ターミナルによって)赤くなって困ったり、Gitでコミットが発生したりと大変なので注意です。