ディレクトリ内のすべてのフォルダ/ファイルにデフォルトのファイル許可を設定する方法は?


254

フォルダ内で作成されたもの(ディレクトリ、ファイル)がデフォルトの許可とグループを継承するようにフォルダを設定したい。

グループを「メディア」と呼びましょう。また、ディレクトリ内に作成されたフォルダ/ファイルには、g + rwが自動的に必要です。


1
新しいファイル/フォルダーを作成するユーザーとそのumaskによって制御されていませんか?
ワディM.

umaskはアクセス許可に関連していますが、ユーザー自身ではないデフォルトグループを設定しても何もしないと思います。
クリス

1
OS タグが必要です。setfaclデフォルトのACLはAIXには存在しません。
アミットナイドゥ

回答:


269

見つけた:デフォルトの許可を適用する

記事から:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

次に確認できます:

getfacl /<directory>

出力:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

5
スティッキービットのイェーイ!
ガベ。

22
gidとスティッキービットを混同しないようにします。
アミットナイドゥ

10
g + sは、ディレクトリ内の新しいコンテンツがグループの所有権を継承するようにします。setfaclは、O = RXに権限を設定し、あなたのケースで、chmodコマンドを変更
スティーンSchütt

10
ファイルのアクセス許可を継承するには、ACLを有効にする必要があります(マウントされたファイルシステムのマウントオプションの1つとして含まれている)。
sg23 14年

11
あなたはそれが唯一のディレクトリではないファイルに実行権限を設定しますので、代わりに「X」を使用して検討する必要がありますsetfacl -d -m g::rwX /<directory>
エイドリアングナワン

27

これはChrisの回答に追加されたもので、Arch Linuxリグでの私の経験に基づいています。

デフォルトスイッチ(-d)および変更スイッチ(-m)を使用すると、デフォルトのアクセス許可のみが変更されますが、既存のアクセス許可はそのまま残されます。

setfacl -d -m g::rwx /<directory>

既存のものを含むフォルダのパーミッション構造全体を変更したい場合(余分な行を追加して再帰的にする必要があります-R:

setfacl -R -m g::rwx /<directory>

例えば。

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

CREDIT REVOKEのsynthaxのコメントにすべての権限ラインをmarkdwiteします)


2
(例として)グループ特権を取り消すには:sudo setfacl -d -mg :: --- / path
markdwhite

1
それはsetfacl -R -m g::rwx /<directory>あなたの答えで2回指定するだけのタイプミスですか?
シェーンロワット

0

自分自身/ログインしたユーザーをwww-dataグループに追加して、www-dataサーバーで作成されたファイルを操作できるようにします

sudo usermod -a -G www-data $USER

新しく追加されたグループを有効にするために、再起動/再ログインする必要があります

cd /var/www

www-dataをhtmlフォルダーのグループメンバーとして追加し、ユーザーを所有者として追加するため、グループメンバーと同様に所有します。

sudo chown -R $USER:www-data html

USERの代わりにユーザー名を入力してください

必要に応じて読み取り、書き込み、実行の許可を設定します(ugo)u = user、g = group、o = others

sudo chmod 750 html

htmlのGIDを設定すると、htmlで新しく作成されたファイルは所有権のパーミッションを継承します:

sudo chmod g+s html

これにより、htmlディレクトリとサブディレクトリ内に新しく作成されたファイル/ディレクトリのデフォルトルールが作成されます。

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

SELinuxがインストールされている場合は作成し、www-dataコンテキスト要件を無視して、書き込み許可を許可します。

sudo setsebool -P httpd_unified 1

ディレクトリをリストして、適用された新しい権限を確認します

ls -ld html

これを返します

drwxrwsr-x+   3 html www-data

末尾の+は、ACL、アクセス制御リストがディレクトリに設定されていることを示します。

参照フォーラムへのリンク


-2

次のコマンドを使用して、ファイルにデフォルトの許可を設定できます。

chacl -R filename

3
これは他の回答とどう違うのですか?そしていくつかの例を挙げ
ましょ

3
それがそれであると確信していますか?linux.die.net/man/1/chaclは、ACL を削除することを示します。
ジェフシャラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.