JR *_*rne 5 linux filesystems permissions share
我有一个 linux 服务器,我想用它在我公司的用户之间共享文件。用户将使用 sftp 或安全外壳访问机器。
这是我所拥有的:
光盘 / 家 ls -l drwxrwsr-x 5 userA 员工 4096 Jul 22 15:00 共享 (省略其他列表)
我希望员工组中的所有用户都能够创建、修改、删除共享文件夹中的任何文件和/或目录。我根本不希望其他任何人访问该文件夹。
我有:
通过修改 /etc/group 并运行 grpconv 更新 /etc/gshadow 将用户添加到人员组
运行 chown -R userA.staff /home/shared
运行 chmod -R 2775 /home/shared
现在,staff 组中的用户可以创建新文件,但不允许打开目录中的现有文件进行编辑。我怀疑这是由于与每个用户关联的主要组 ID 仍然设置为创建用户时创建的组。因此,用户“userA”的 PGID 是“userA”。
如果我可以提供帮助,我宁愿不将用户的主要组更改为“员工”,但如果这是最简单的选择,我会考虑。
而且,一个主题的变体,我想对另一个目录做同样的事情,但也允许 apache 用户读取目录中的文件并为它们提供服务。
设置它的最佳方法是什么?
你所拥有的实际上看起来是正确的。您在目录上设置了 setgid 位,因此创建的新文件应该继承该staff
组。不过,它们仍然归创作者所有。我怀疑问题在于umask
您的用户默认为022
甚至077
,这意味着他们创建的新文件默认没有组写入权限。用户/组所有权是正确的,但组权限不允许组的其他成员写入(甚至可能读取)文件。
在staff
组中选择一个用户并将其设置umask
为002
or 007
,这意味着新文件将是所有者和组可写的。我怀疑这会解决问题:
bash$ umask
0022
bash$ umask 002
bash$ umask
0002
Run Code Online (Sandbox Code Playgroud)
此外,您指出您根本不希望staff
组外的任何人对目录有任何访问权限。您应该修改目录权限以2770
实现此目的,否则staff
将无法读取(但不能修改)目录中的文件。
关于apache
用户的最后一个问题,最简单的方法可能是将该用户添加到staff
组中。
归档时间: |
|
查看次数: |
27902 次 |
最近记录: |