フォルダを設定して、その中に作成されたもの(ディレクトリ、ファイル)にはデフォルトのパーミッションとグループが継承されるようにしたいのですが。
グループ名は「"media"」とします。 また、そのディレクトリ内に作成されたフォルダやファイルは、自動的にg+rwになるようにします。
見つけてしまいました。デフォルトのパーミッションの適用について
記事から
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
これはChris'の回答に追加したもので、私のArch Linuxリグでの経験に基づいています。
defaultスイッチ(-d)とmodifyスイッチ(-m)を使うと、デフォルトのパーミッションを変更するだけで、既存のパーミッションはそのまま残ります。
setfacl -d -m g::rwx /<directory>
既存のパーミッションを含むフォルダ全体のパーミッション構造を変更したい場合(追加行を作成して再帰的にする必要があります -R:
setfacl -R -m g::rwx /<directory>
eg.
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 to markdwite in comments for the synthax of the revoke all privileges line)
以下のコマンドで、ファイルにデフォルトのパーミッションを設定することができます。
chacl -R filename