使目录仅可由一个用户写入

使目录仅可由一个用户写入

我正在尝试在桌面上设置 PostgreSQL 以供本地使用,但遇到了一个奇怪的问题。我似乎找不到一种简单的方法让数据库集群(只是一个目录)仅供 postgres 用户访问,并让其完全访问。换句话说,我希望 postgres(用户)拥有对目录的完全访问权限,但其他所有人都只能读取其中的内容(以便可以复制文件)。

我创建了用户“postgres”,将其从所有组中删除,并拒绝“用户”组的写入权限。但是,当我尝试初始化数据库时,postgres 用户似乎无法写入目录 - 一旦我从“用户”中删除写入拒绝,它就可以正常工作。

我知道我可以做一些事情,比如拒绝我的默认用户(本质上是我自己)的写权限,但这个用户属于“管理员”而不是“用户”。由于显然所有用户都隐式地属于“用户”,并且拒绝优先,我担心我会拒绝自己(唯一的管理员)在将来的任何时候修改此目录的能力。

我看过一些涉及组策略等的其他说明,但它们似乎不够具体,而且过程感觉太复杂了,这让我认为我完全误解了 NTFS/Windows 权限。这种感觉进一步加剧了,因为我可以在 5 分钟内想到如何在 Linux 上简单地做到这一点。我甚至不确定现在是否可行。

我如何授予特定用户对目录的唯一访问权限,而不授予其他用户访问权限?

编辑:我想我可以将这个问题归结为一个更简单的问题:任何禁止属于管理员组的用户执行任何操作的方法是什么?如果您这样做了,是否可以将权限恢复到以前的状态?

答案1

您无需为此拒绝权限,也无需将其postgresUsers组中删除。此组应该具有目录的读取权限,但没有写入权限。请注意,这与拒绝不同,您只需确保您的集群目录不会从其父级继承任何权限,然后手动为其分配Users组的读取权限。然后仅为用户分配写入权限postgres,一切就绪了。

编辑:如果上面的解释不够清楚,这里有一个截屏文章

相关内容