目前我已经有一个用户deploy
,该用户拥有运行部署的脚本。我想创建另一个用户,例如developers
,访问部署的脚本文件。我该如何实现?
这是我已经尝试过的方法:1)添加另一个用户:sudo adduser developers 2)将两个用户都添加到该组
$sudo usermod -a -G sharedfolders deploy
$sudo usermod -a -G sharedfolders developers
3)授予用户developers
访问部署目录的权限
chown -R deploy:sharedfolders /home/deploy/source
答案1
在Linux/unix中有很多种方法可以处理文件共享权限:
- 将
developer
用户添加到deploy
组,并设置脚本的权限以允许该组读取和执行。例如chmod 750 myscript.sh
- 你可能会发现使用 Linux“ACL”或访问控制列表很有帮助,例如,
developer
你有一个developer
组,而不是一个用户,其中包含许多成员。你可以将 ACL 添加到bin
由该组拥有的某种目录中deploy
,该目录会自动将新文件的读取和执行权限授予该developer
组 - “ACL”的好处是,目录和文件可以“属于”多个用户或组,并且可以向目录添加继承属性,因此新文件可以“继承”父目录的适用 ACL 权限
在某些情况下,您可能会避开 ACL,因为它们是一种特殊的文件系统功能,可能在您使用的 FS 上不可用,或者可能会在备份期间丢失。
在第一种情况下,您运气不佳。您必须专门创建一个用于运行这些脚本的组,将您的developer
s 添加到其中,并记住chown
在chmod
创建时添加相关脚本。(所有父目录都必须可由相关用户读取和执行)