やりたいことは、とあるディレクトリ以下に、かなりの量のWebコンテンツがあるのですが、現在、全てのディレクトリ及びファイルが0777という権限になっております。それを、なるべく手間のかからない方法で、ファイル群は0400、ディレクトリ群は0500にしたいのですが、どのようにすれば宜しいでしょうか。
http://d.hatena.ne.jp/yumatsumo/20070516
findを使うと楽に実現できるんだと思います。
# ファイル find 対象のルートディレクトリ -type f -exec chmod 0400 {} \; # ディレクトリ find 対象のルートディレクトリ -type d -exec chmod 0500 {} \;
そのディレクトリ直下のファイル/ディレクトリのみでいいのでしょうか?
それなら、以下のようになると思います。
ls -F [ディレクトリパス]|grep -v /|xargs chmod 400
ls -F [ディレクトリパス]|grep /|xargs chmod 500
もし、ディレクトリ直下だけでなく、さらに深いディレクトリまでたどりたいのでしたら、以下のようになります。
find [ディレクトリパス] -type f|xargs chmod 400
find [ディレクトリパス] -type d|xargs chmod 500
#/bin/sh find /path/to/target -type f -print0 | xargs -0 chmod 400 find /path/to/target -type d -print0 | xargs -0 chmod 500
まぁ既存の回答と大して変わらないが、イレギュラーなファイル名が
含まれている場合にこちらのほうが安全ではある。
回答者 | 回答 | 受取 | ベストアンサー | 回答時間 | |
---|---|---|---|---|---|
1 | paxil | 375回 | 320回 | 2回 | 2009-11-12 21:35:31 |
コメント(0件)