如何在Linux上设置共享目录?

前端之家收集整理的这篇文章主要介绍了如何在Linux上设置共享目录?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Linux服务器,我想用来在我公司的用户之间共享文件.用户将使用sftp或安全shell访问该计算机.

这是我有的:

cd /home
ls -l
drwxrwsr-x  5 userA         staff      4096 Jul 22 15:00 shared
(other listings omitted)

我希望人员组中的所有用户都能够创建,修改,删除共享文件夹中的任何文件和/或目录.我根本不希望任何其他人访问该文件夹.

我有:

>通过修改/ etc / group并运行grpconv来更新/ etc / gshadow,将用户添加到staff组
>运行chown -R userA.staff / home / shared
>运行chmod -R 2775 / home / shared

现在,人员组中的用户可以创建新文件,但不允许他们打开目录中的现有文件进行编辑.我怀疑这是因为与每个用户关联的主要组ID仍然设置为创建用户时创建的组.因此,用户’userA’的PGID是’userA’.

如果我可以提供帮助,我宁愿不将用户的主要群体更改为“员工”,但如果这是最简单的选择,我会考虑它.

而且,一个主题的变体,我想与另一个目录做同样的事情,但也允许apache用户读取目录中的文件并提供它们.

设置它的最佳方法是什么?

解决方法

你实际上看起来是正确的.您在目录上设置了setgid位,因此创建的新文件应该继承staff组.但是,它们仍然由创作者拥有.我怀疑问题是你的用户的umask默认为022甚至077,这意味着他们创建的新文件默认情况下不具有组写权限.用户/组所有权是正确的,但组权限不允许该组的其他成员写入(或甚至可能读取)文件.

选择人员组中的用户并将umask设置为002或007,这意味着新文件将是所有者和组可写的.我怀疑这会纠正这个问题:

bash$umask
0022
bash$umask 002
bash$umask
0002

此外,您还注意到您不希望工作人员组以外的任何人完全访问该目录.您应该将目录权限修改为2770以实现此目的,否则非工作人员将能够读取(但不能修改)目录中的文件.

对于关于apache用户的最后一个问题,最简单的方法可能是将该用户添加到staff组.

猜你在找的Linux相关文章