首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >文件夹中的文件更改其权限

文件夹中的文件更改其权限
EN

Unix & Linux用户
提问于 2018-04-04 07:26:44
回答 1查看 119关注 0票数 0

我正在努力解决以下问题。我读过以下指南:获取新文件以继承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文件夹中,我有类似的文件

代码语言:javascript
运行
复制
-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继承权限的方式?

代码语言:javascript
运行
复制
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::---

在文件上

代码语言:javascript
运行
复制
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::---
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-04-04 08:12:31

目录的getfacl输出解释了这一点。第四行:

代码语言:javascript
运行
复制
# flags: -s-

指示目录设置了setgid位,因此在目录中生成的所有文件都将得到该目录具有的相同组。新子目录将同时继承组和setgid位.这与ACL一点关系都没有;这只是一个基本的chmod 2755

在清单的末尾,有几行用default关键字标记:

代码语言:javascript
运行
复制
default:user::rwx
default:group::r-x
default:group:postgres:r-x
default:mask::r-x
default:other::---

这些文件更详细地说明了任何新文件或子目录将获得的权限。在这种情况下,它向标准POSIX组所有者强制执行r-x组权限,并为postgres组添加显式的r-x权限,不管创建者是否属于该组。如果需要具有组写访问权限的文件,则需要更改这些文件。

试试这个:

代码语言:javascript
运行
复制
setfacl -m g::rwX,d:g::rwX,d:g:postgres:rwX /var/www/pgcluu/stats

对于Linux,应该自动更新setfaclmask部分,以包括写访问。(对于更严格的-POSIX系统,您必须将d:m:rwx添加到ACL规范中,以显式地调整ACL掩码。)

大写X表示"execute权限,但仅用于目录,也用于已经对某人具有执行权限的文件。“

如果目录(以及在目录中创建的任何新文件)具有修改后所需的权限,则可以考虑添加-R选项,以便递归地对/var/www/pgcluu/stats下的所有文件和目录进行更改。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/435441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档