我正在努力解决以下问题。我已阅读以下指南:在 Linux 上获取新文件以继承组权限 然而,这对我没有帮助。
(pgcluu是一个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
这只是一个例子,还有很多文件。
这些文件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::---
目录的
getfacl
输出解释了它。第四行:表示该目录
setgid
设置了该位,因此在其中生成的所有文件都将获得该目录具有的相同组。新的子目录将继承组和setgid
位。这根本与 ACL 无关;这只是一个基本的chmod 2755
。在清单的末尾,有几行标有
default
关键字:这些更详细地指定了任何新文件或子目录将获得的权限。在这种情况下,它对标准 POSIX 组所有者强制执行 rx 组权限,并为
postgres
组添加显式 rx 权限,无论创建者是否属于该组。如果您需要文件具有组写访问权限,则需要更改这些文件。尝试这个:
在 Linux中
setfacl
,ACL 的mask
一部分应该自动更新以包括写访问。(对于更严格的 POSIX 系统,您必须添加d:m:rwx
到 ACL 规范以显式调整 ACL 掩码。)大写的 X 表示“执行权限,但仅适用于目录,也适用于已经对某人具有执行权限的文件”。
如果目录(以及您在其中创建的任何新文件)在此修改后具有您想要的权限,您可以考虑添加
-R
选项以递归方式对 . 下的所有文件和目录进行更改/var/www/pgcluu/stats
。