ユーザーと同じ権限をグループに再帰的に与えるChmodファイル


15

ディレクトリツリーに対してファイルごとに再帰的にユーザーが現在持っているのと同じアクセス許可をグループに付与するUNIXコマンドはありますか?つまり、ファイルがユーザー書き込み可能であればグループ書き込み可能になり、そうでなければグループ書き込み可能になりません。

chmod 

回答:


24

g = uを見せてくれたjamessanに感謝します。私のシステムでは、これはうまくいくようです:

chmod -R g=u dir

1
また、ディレクトリの権限も変更されます。元の質問はファイルを指定しました。
ジェムサン09

@jamessan、ディレクトリは。
マイクグラハム

@Mikeは、* nixを使用するとほとんどすべてをファイルとして扱うことができるからといって、ディレクトリが実際にファイルであることを意味しません。それらが同じであると認めたとしても、ディレクトリツリー内のすべてのファイルのアクセス許可を変更することと、ディレクトリツリー内のすべてのファイルとディレクトリのアクセス許可を変更することには明確な機能的な違いがあります。
ジェームスサン

もう一度、私の問題に対する簡単な解決策があります。なぜ私は驚かないのですか?
-rzetterberg


0

既存のコマンドを使用してそれを行う簡単な方法は考えられません。このようなスクリプトが役立つ場合があります:

#!/bin/bash

DIR="$1"

find "$DIR" -ls | while read a b perm c d e f g h i file; do
   uperm=${perm:1:3}
   uperm=$(echo "$uperm" | tr -d '-')
   chmod g=$uperm "$file"
done

また、ユーザーの一部の権限はグループに適用されない場合があり、その逆も同様です。


0

そのようなコマンドが存在するかどうかはわかりませんが、findを使用して数回呼び出すと、
あなたがやろうとしていることを達成できます

例えば:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

上記のコマンドは、「」カレントディレクトリを移動するすべてのファイルを持って見つけた書き込みの許可を
ユーザーが、ノーライト・ グループのアクセス許可を、グループ書き込み可能であるように権限を変更します。

同様に、上記の呼び出しを使用 して、グループの読み取りモードと実行モードのファイル許可を変更します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.