更多 Linux 权限问题

更多 Linux 权限问题

我读过无数关于这个主题的文章,搜索了所有我能找到的问题和答案,但都无功而返。我快要疯了,所以我求助于你们,因为我知道我的问题的答案很可能很简单。

在我的 Web 服务器上,我有两个用户和两个组。用户需要读取和写入同一区域。不是单个文件夹,而是复杂的文件夹网络。

>> groups user_1
      popuser psaserv psacln
>> groups user_2
      psacln popuser psaserv

这些不是真正的用户,所以他们没有 .bashrc 文件。当每个用户创建一个目录时,权限看起来与我预期的完全一样:

drwxr-xr-x 2 user_1 popuser 4096 Apr 30 20:47 folder_1
drwxr-xr-x 2 user_2 psacln  4096 Apr 30 20:49 folder_2

但是一旦两个用户中的一个创建了该文件夹,另一个用户就无法向其中写入任何文件。

如果我 chmod 777,那么他们当然都可以写。

猫/等/组

popuser:x:31:user_1,psaserv,user_2
psacln:x:505:user_2,user_1,psaserv

同样不寻常的是,当将文件写入组时,权限似乎非常严格:

-rw-r--r-- 1 user_2 psacln 0 Apr 30 21:15 some_file.ext

尽管这也许是意料之中的。

无论如何,总结并澄清我的两部分问题:

1) How can I make both users access files and folders from each other, given their group differences?
2) How can I set the default permissions on new files so they inherit the folder permissions?

(2) 我尝试将 umask 022 添加到我的 root 用户的 ~/.bashrc 文件中,但没有任何效果。我不确定对于那些没有主目录的“用户”,应该把它放在哪里。

抱歉,我知道对于 Linux 用户专家来说,这样的问题可能显得多余。当我甚至不知道自己在寻找什么时,搜索就变得很困难。

一如既往,非常感谢。

[我在 centOS 上]

答案1

1)考虑到两个用户的组差异,如何让两个用户彼此访问文件和文件夹?

一种方法是给目录赋予用户共同拥有的组。

  chgrp psaserv folder1 folder2
  chmod g+w  folder1 folder2

2)如何设置新文件的默认权限以便它们继承文件夹权限?

使用“设置组 ID”位。

  chmod g+s folder1 folder2

您不能继承 rwx 权限,请设置 umask。


我尝试将 umask 022 添加到我的 root 用户的 ~/.bashrc 文件中,但没有任何效果。我不确定这些没有主目录的“用户”应该把它放在哪里。

您已安排某个进程使用这些用户 ID。您应该安排该进程将其 umask 设置为 022。如何执行此操作取决于您安排执行此操作的进程。也许您使用的是sudo,也许它是一个 Web 服务器,也许是其他东西。除非您解释,否则无法提供详细的具体建议。

答案2

如果您希望用户创建的新文件默认可由组成员写入,则需要将 umask 修改为 022 以外的值。如果您不介意安全隐患,请将 umask 设置为 002(有关在何处设置 umask 的示例,请参阅https://stackoverflow.com/questions/10220531/how-to-set-system-wide-umask)。

Umask 解释

新创建的文件和目录的默认文件权限是标准权限(rw-rw-rw对于文件,rwxrwxrwx对于目录)减去当前 umask 设置。umask 设置为 000 将保留标准权限,而设置为 777 将删除所有权限。

umask 中的三个数字分别代表用户、组和任何人的权限。该数字代表是否删除特定权限的三个二进制数字。

d - rwx
-------
0 - 000 (rwx)
1 - 001 (rw-)
2 - 010 (r-x)
3 - 011 (r--)
4 - 100 (-wx)
5 - 101 (-w-)
6 - 110 (--x)
7 - 111 (---)

要计算新文件在给定特定 umask 时将具有哪些权限,请从默认权限开始并减去 umask。

orig    rwx rwx rwx (777, default directory permission)
umask   000 010 010 (022)
result  rwx r-x r-x (755)

orig   rw- rw- rw- (666, default file permission)
umask  000 010 010 (022)
result rw- r-- r-- (644)

orig   rwx rwx rwx (777, default directory permission)
umask  000 000 010 (002)
result rwx rwx r-x (775)

orig   rw- rw- rw- (666, default file permission)
umask  000 000 010 (002)
result rw- rw- r-- (664)

相关内容