次の問題を解決しようとしています。私は次の指示を読んだ。Linuxでグループ権限を継承する新しいファイルをインポートする しかし、これは私には役に立ちません。
(pgcluはpostgresqlクラスタ監視プログラムです)
使っていますDebian server
フォルダがあります。 /var/www/pgcluu
そのフォルダ内にフォルダがあります
stats
reports
。stats
フォルダの権限と所有権をpostgresに変更しました。chmod -R postgres:postgres /var/www/pgcluu
(したがって、フォルダ全体はpostgresの所有者です)
一方、pgCluuはstats
フォルダ内からデータを収集してファイルを生成しています。のように見えます。デフォルトでは、/var/www/pgcluu/stat/2018/04/04/09
フォルダ/year/month/day/hour/
内にはhour
次のファイルがあります。
-rw-r-----+ 1 postgres postgres 44 Apr 4 10:20 pg_stat_connections.csv
-rw-r-----+ 1 postgres postgres 940 Apr 4 10:20 pg_stat_database_conflicts.csv
-rw-r-----+ 1 postgres postgres 2479 Apr 4 10:20 pg_stat_database.csv
-rw-r-----+ 1 postgres postgres 1 Apr 4 10:20 pg_stat_replication.csv
-rw-r-----+ 1 postgres postgres 0 Apr 4 10:20 pg_stat_statements.csv
-rw-r-----+ 1 postgres postgres 88 Apr 4 10:20 postgresql.auto.conf
-rw-r-----+ 1 postgres postgres 21425 Apr 4 10:20 postgresql.conf
-rw-r-----+ 1 postgres postgres 70009 Apr 4 10:20 sysinfo.txt
これは単なる例であり、多くの文書があります。
これらのファイルは1分ごとに作成されますがpgcluu_collectd
(変更可能)、再作成する必要があるため、rw- rw- ---
これを行うには権限が必要です。 (所有者とグループはファイルに対する読み取りおよび書き込み権限を持っている必要があります。)私が直接変更するたびに、pgcluu_collectdはrw- r-- ---
ファイルに再び権限を与えます。
それでは、ファイルにフォルダの権限を継承させる方法はありますか?/var/www/pgcluu/stats
root@p12: getfacl /var/www/pgcluu/stats/
# file: var/www/pgcluu/stats/
# owner: postgres
# group: postgres
# flags: -s-
user::rwx
group::rwx
other::---
default:user::rwx
default:group::r-x
default:group:postgres:r-x
default:mask::r-x
default:other::---
そしてファイルに
root@p12:getfacl /var/www/pgcluu/stats/2018/04/04/10/pg_hba.conf
# file: var/www/pgcluu/stats/2018/04/04/10/pg_hba.conf
# owner: postgres
# group: postgres
user::rw-
group::r-x #effective:r--
group:postgres:r-x #effective:r--
mask::r--
other::---
答え1
getfacl
このディレクトリの出力はこれを説明します。 4行目:
# flags: -s-
setgid
ディレクトリに作成されたすべてのファイルがディレクトリと同じグループを持つように、ディレクトリにビットが設定されていることを示します。新しいサブディレクトリはグループとビットを継承しますsetgid
。これはACLとまったく関係ありません。ただ基本的なものにすぎませんchmod 2755
。
リストの末尾にはキーワードが表示された複数行がありますdefault
。
default:user::rwx
default:group::r-x
default:group:postgres:r-x
default:mask::r-x
default:other::---
これは、新しいファイルまたはサブディレクトリが受け取る権限をより詳細に指定します。この場合、標準 POSIX グループ所有者に rx グループ権限を適用し、postgres
作成者がグループに属しているかどうかに関係なく、グループに明示的な rx 権限を追加します。グループ書き込みアクセス権を持つファイルが必要な場合は、そのファイルを変更する必要があります。
この試み:
setfacl -m g::rwX,d:g::rwX,d:g:postgres:rwX /var/www/pgcluu/stats
Linuxでは、setfacl
書き込みmask
アクセスを含めるためにACLセクションを自動的に更新する必要があります。 (より限定的なPOSIXシステムでは、d:m:rwx
ACLマスクを明示的に調整するにはACL仕様を追加する必要があります。)
首都
-R
ディレクトリ(およびディレクトリによって作成されたすべての新しいファイル)に変更後に必要な権限がある場合/var/www/pgcluu/stats
。