chmod で やらかしてしまったときの対処法

Ubuntu
スポンサーリンク

メモ書きです。

find | xargs とかを普通にやってしまうと、すぐに arguments too long とかいって怒られるので少し厄介。

やりたかったのは、間違えて設定してしまっているパーミッションをデフォルト値に戻すというもの。間違えて設定してしまったパーミッションを grep してそれだけをデフォルト値にします。

# ホームディレクトリでパーミッションが 777 になってしまっているディレクトリを 755 に戻す。
find ~ -type d -exec stat -c "%a %n" "{}" 2>/dev/null \; | awk -c '$1~/^777/ {for (i=1; i<=NF-1; i++) $i = $(i+1); NF-=1; system("chmod 755 \""$0"\"")}' 
# ホームディレクトリでパーミッションが 777 になってしまっているファイルを 644 に戻す。
find ~ -type f -exec stat -c "%a %n" "{}" 2>/dev/null \; | awk -c '$1~/^777/ {for (i=1; i<=NF-1; i++) $i = $(i+1); NF-=1; system("chmod 644 \""$0"\"")}' 

パーミッション確認したら、全部 777 になってて焦って修正。ubuntu 再インストールの rsync の際にミスって通常コピーを使ってしまったことに起因するよう。気をつけよう。

コメント

タイトルとURLをコピーしました