因此我创建了一个可供多个用户使用的目录/SharedDir
。此共享目录当前配置如下。
drwxrwsrwx+ 6 root group 4.0K Mar 23 20:40 /SharedDir
此目录中没有直接创建任何文件。我正在使用Gitlab-runner
CI/CD 脚本生成文档并将其传输到此目录中,以供用户稍后查看。构建脚本会生成两个文件以及其他文件夹中的文件。
-rw-rw-r--+ 1 gitlab-runner group 3.5K Mar 23 21:07 data.html
drwxrwsr-x+ 2 gitlab-runner group 4.0K Mar 23 21:07 _directory
通过这个Gitlab-runner
脚本,我可以运行我需要的内容并将其传输到共享目录中。Gitlab-runner
不需要提升的权限就可以将这些文件/文件夹移动到共享目录中。
但是,像我这样的用户需要提升权限才能删除这些文件/文件夹。此外,如果我手动运行脚本,在 之外Gitlab-runner
,我再次需要提升权限才能将它们移动到共享目录中。
我做了什么:
创建组
groupadd group
将所有用户添加到组
usermod -a -G group user1 user2 user3 gitlab-runner
更改目录的组
chgrp group /SharedDir
我还递归设置了/SharedDir 的权限
chown -R mainUser:group /SharedDir
chmod -R a+wr /SharedDir
有效的方法:
作为用户,我可以生成文件/文件夹并将文件/文件夹移动到其中SharedDir
而无需sudo
。当我运行Gitlab-runner
它时,可以删除任何用户生成的文件/文件夹,而无需使用sudo', and add new files/folders to the
SharedDir`
什么不起作用
任何由其他用户生成的文件夹Gitlab-runner
如果不使用就无法删除sudo
。