我正在努力解决以下问题。我读过以下指南:获取新文件以继承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
生成(u可以更改它),但是它们需要重写,因此它需要有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::---
发布于 2018-04-04 08:12:31
目录的getfacl
输出解释了这一点。第四行:
# 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组所有者强制执行r-x组权限,并为postgres
组添加显式的r-x权限,不管创建者是否属于该组。如果需要具有组写访问权限的文件,则需要更改这些文件。
试试这个:
setfacl -m g::rwX,d:g::rwX,d:g:postgres:rwX /var/www/pgcluu/stats
对于Linux,应该自动更新setfacl
的mask
部分,以包括写访问。(对于更严格的-POSIX系统,您必须将d:m:rwx
添加到ACL规范中,以显式地调整ACL掩码。)
大写X表示"execute权限,但仅用于目录,也用于已经对某人具有执行权限的文件。“
如果目录(以及在目录中创建的任何新文件)具有修改后所需的权限,则可以考虑添加-R
选项,以便递归地对/var/www/pgcluu/stats
下的所有文件和目录进行更改。
https://unix.stackexchange.com/questions/435441
复制相似问题