我正在为“开发”组中的用户创建一个共享文件夹。我无法想出一系列用于执行此操作的命令,我需要设置以下权限:
- 只有开发组的成员可以在其中创建文件
- 用户只能删除他们创建的文件和目录
- 共享目录中的任何新文件/文件夹都与该组相关联
- 群主只能阅读
- 所有者可以读取文件,但其他人不能具有 r/w 访问权限
我可以使用哪些命令来完成此操作?我似乎无法使用 chmod 和 来解决这个问题,当我以其他用户身份登录时,即使设置了粘性位,我也会继续获得查看文件夹或创建文件的权限被拒绝。
我正在为“开发”组中的用户创建一个共享文件夹。我无法想出一系列用于执行此操作的命令,我需要设置以下权限:
我可以使用哪些命令来完成此操作?我似乎无法使用 chmod 和 来解决这个问题,当我以其他用户身份登录时,即使设置了粘性位,我也会继续获得查看文件夹或创建文件的权限被拒绝。
天使的和弦,
首先,您必须在请求中说明您是否具有root权限(登录、sudo)来操作文件系统中的权限。
现在您需要将任务拆分为更小的块:
一个。将用户添加到开发组(dev_group - 假设已经存在)
root# for user in (user1 user2 user3 ... usern)
do
usermod -a -G dev_group $user
done
湾。创建开发者组目录
mkdir /some/path/to/developer/group/dir
C。为文件夹分配权限:请参阅doc
- 所有者 root.dev_group(根)
- owner rwx -- 可以读取、创建、切换到目录
- group rwx -- 可以读取、创建、切换到目录
- other/world rx -- 只能读取,更改为目录(检查是否需要)
- 设置 SGID - 新创建的文件/目录从目录继承组
- 设置 'stiky' 位 - 只允许操作自己的文件/目录
chown root.dev_group [path to directory] # owner root.dev_group
chmod u=rwx,g=rwx,o=rx [path to directory] # user rwx; group rwx; other r-x
chmod g+s [path to directory] # SGID bit inherit group from directory for new files and directories
chmod +t [path to directory] # stiky bit manipulate own files and directories only
或者
chmod 3775 [path to directory]
注意:对目录的执行权限允许更改到目录
d。为每个用户定义umask :
- 用户 rwx
- r组——
- 其他 - -
(在 shell 初始化脚本中为 .bashrc .profile ....)
umask u=rwx,g=r,o=
注意:如果 umask 由于任何正当原因必须不同,则用户必须在创建时更改权限,在新文件/目录上复制时间
使用访问控制列表acl和SELinux 上下文可以实现更精细的访问限制。