私のLinuxシステムの中には、次のディレクトリツリーがあります。
/dir1/dir2/dir3/dir4/target
各dir [1-4]ディレクトリの下には複数のディレクトリがあり、これらのすべてのディレクトリ(およびそのサブディレクトリ)には750
権限があります。それでは、others
「ターゲット」ディレクトリとそのサブディレクトリを探したいと思います。chmod -R o+rx
で実行すると、権限は変更されますが、親ディレクトリ/dir1/dir2/dir3/dir4/target
に権限がないため、ユーザーはディレクトリにアクセスできません。サーバーの1つに次の権限を付与して問題を解決しました。/dir1/dir2/dir3/dir4/target
755
others
r-x
chmod -R o+x /dir1
chmod -R o+rx /dir1/dir2/dir3/dir4/target
上記のコマンドが/dir [1-4]のすべてのサブディレクトリに "traverse"権限を与えることを考慮すると、/dir [1-4]ディレクトリと "/"ディレクトリにのみ巡回権限を提供するより良いコマンドがありますか? ? dir" [1-4]" ディレクトリ rx 権限 宛先ディレクトリ?
ベストアンサー1
x
「その他」ディレクトリ/dir1/dir2/.../target
とすべての中間ディレクトリ(ルートディレクトリを除く)の権限と、パスの末尾にあるディレクトリr
の権限を設定します。target
dir=/dir1/dir2/dir3/dir4/target
chmod o+r "$dir"
while [ -n "$dir" ]; do
chmod o+x "$dir"
dir=${dir%/*}
done
特定のディレクトリパスに対して次のコマンドが実行されます。
chmod o+r /dir1/dir2/dir3/dir4/target
chmod o+x /dir1/dir2/dir3/dir4/target
chmod o+x /dir1/dir2/dir3/dir4
chmod o+x /dir1/dir2/dir3
chmod o+x /dir1/dir2
chmod o+x /dir1
dir
最後の項目とそれ以降のすべての項目を削除すると、ループが繰り返されるたびに変数の値が変わります/
。