我们有一个名为 JBossAdmins 的组,该组的用户必须在 RHEL 6 上编辑一些 /etc 文件:
- /etc/httpd/*
- /etc/java/*
- /etc/jboss/*
我的第一个想法是授予以下 sudo 权限:
%JBossAdmins ALL=(root) /bin/vi /etc/httpd/*
%JBossAdmins ALL=(root) /bin/vi /etc/java/*
%JBossAdmins ALL=(root) /bin/vi /etc/jboss/*
显然,用户现在可以以 root 身份启动 vi,然后通过执行 fe 来编辑任何文件:e /etc/passwd
所以 sudo 不是一个好主意。
然后我想到要做一个chgrp JBossAdmins -R path
,然后做一个chmod g+rw -R path
。
但我也不太确定这是否是个好主意。
因此,考虑到安全隐患,允许一组用户编辑某些 /etc 文件的最佳做法是什么?有没有比 sudo 或 chgrp/chmod 更好的替代方案?
答案1
让别人sudo
进来vi
总是一个坏主意。他们可以通过发出命令使用 root-shell 退出 vi :shell
。你不会想要那样的。
另一种选择可能是。然后您可以在文件中sudoedit
授予用户/组权限:sudoedit
sudoers
%JBossAdmins <hostname>: sudoedit /etc/httpd/*
%JBossAdmins <hostname>: sudoedit /etc/java/*
%JBossAdmins <hostname>: sudoedit /etc/jboss/*
答案2
你可以使用 acls 来做类似的事情
setfacl -m g:JBossAdmins:rw /path/to/file
这将授予 JBossAdmins 组中任何人对特定文件的读/写权限。