ディレクトリ内のすべてのフォルダ/ファイルに対してデフォルトのファイル権限を設定するには?

ディレクトリ内のすべてのフォルダ/ファイルに対してデフォルトのファイル権限を設定するには?

フォルダに作成されたすべてのアイテム(ディレクトリ、ファイル)がデフォルトの権限とグループを継承するようにフォルダを設定したいと思います。

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

答え1

見つけました:基本権限の適用

記事から:

  1. setgid<directory>の下のファイル/フォルダが<directory>と同じグループを使用して作成されるようにこのビットを設定します。

    chmod g+s <directory>
    
  2. グループおよびその他のグループのデフォルト ACL 設定

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

次に、次のことを確認できます。

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

答え2

これはChrisの答えに追加され、Arch Linuxシステムの私の経験に基づいています。

デフォルトスイッチ(-d)と変更スイッチ(-m)を使用すると、デフォルト権限のみが変更され、既存の権限は変更されていません。

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

既存のフォルダを含むフォルダの完全な権限構造を変更する場合(1行をさらに作成して再帰的に作成する必要があります-R):

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

はい:

# Gives group read,write,exec permissions for currently existing files and
# folders, recursively.
setfacl -R -m g::rwx /home/limited.users/directory 

# Revokes read and write permission for everyone else in existing folder and
# subfolders.
setfacl -R -m o::x /home/limited.users/directory  

# Gives group rwx permissions by default, recursively.
setfacl -R -d -m g::rwx /home/limited.users/directory

# Revokes read, write and execute permissions for everyone else. 
setfacl -R -d -m o::--- /home/limited.users/directory

クレジット取引コメントにすべての権限の取り消し行の構文を表示します.)

答え3

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=other

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)がディレクトリに設定されていることを示します。

引用する:フォーラムリンク

答え4

ファイルのデフォルト権限を設定するには、次のコマンドを使用します。

chacl -R filename

関連情報