加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

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

发布时间:2021-03-05 04:29:59 所属栏目:Linux 来源:网络整理
导读:我有一个 Linux服务器,我想用来在我公司的用户之间共享文件.用户将使用sftp或安全shell访问该计算机. 这是我有的: cd /homels -ldrwxrwsr-x 5 userA staff 4096 Jul 22 15:00 shared(other listings omitted) 我希望人员组中的所有用户都能够创建,修改,删除

我有一个 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组.

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!