ディレクトリツリーの「他のユーザー」に読み取り/実行を許可する

ディレクトリツリーの「他のユーザー」に読み取り/実行を許可する

私の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/target755othersr-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最後の項目とそれ以降のすべての項目を削除すると、ループが繰り返されるたびに変数の値が変わります/

おすすめ記事