パスのすべてのディレクトリに読み取り権限を追加する

パスのすべてのディレクトリに読み取り権限を追加する

以下に記述したパスにあるすべてのディレクトリに(他のファイルの権限を変更せずに)追加したい。chmod -R xx4 /home/mDB/admin/KNUCKLES/dbs/

パス

/home/mDB/admin/KNUCKLES/dbs/

フォーラムで見つけたこのコマンドを試してみましたが、うまくいきませんでした。

chmod +r /home/mDB/admin/KNUCKLES/dbs/ -R

ファイル/ディレクトリの所有者やグループではなく、すべてのユーザーの権限のみを変更したいです。

前もって感謝します。

答え1

次のように言うことができます:

chmod -R o+r /home/mDB/admin/KNUCKLES/dbs/

これにより、読む再帰的に許可するその他つまり、所有者/グループではありません。

編集: コメントによると、問題はファイルではなくディレクトリの権限にあるようです。次のように言うこともできます:

chmod o+rx /home/mDB/{admin,admin/KNUCKLES,admin/KNUCKLES/dbs}

これらはディレクトリなので、実行ビットをオンに設定する必要があることに注意してくださいx。これがないと、r何の役にも立ちません。

答え2

分割して複数のコマンドを発行する必要があります。

chmod -R xx4 /home/
chmod -R xx4 /home/mDB/
chmod -R xx4 /home/mDB/admin/
chmod -R xx4 /home/mDB/admin/KNUCKLES/
chmod -R xx4 /home/mDB/admin/KNUCKLES/dbs/

私よりも高度なコマンドラインスキルを持つ人なら、もっと短い方法を知っているかもしれません。

答え3

ディレクトリに対してのみ実行ビットを設定するには、次の手順を実行します。

chmod -R a+X dir

man chmod から:

ファイルがディレクトリであるか、すでに何らかのユーザーに実行権限がある場合にのみ実行/検索します (X)

回答者:https://unix.stackexchange.com/questions/39761/execute-bit-on-directories-but-not-files

関連情報