
以下に記述したパスにあるすべてのディレクトリに(他のファイルの権限を変更せずに)追加したい。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