Xav*_*ard 6 sudo setuid access-control-list setgid
出于一个我不太明白的原因,每个人都想要 sudo 。在工作中,我们甚至有与读取日志文件的方法一样多的条目(head/tail/cat/more,...)。
我认为,sudo 在这里失败了。
我宁愿混合使用 setgid/setuid 目录并在这里和那里添加 ACL,但我真的需要在开始之前知道什么是最佳实践。
我们的服务器有 %admin、%production、%dba、%users——即许多组和许多用户。每个服务(mysql、apache 等)都有自己的安装权限的方式,但 %production 组的成员必须能够查阅配置文件甚至日志文件。仍然有解决方案将它们添加到正确的组(mysql ...)并设置好权限。但我不想 usermod 所有用户,我不想修改标准权限,因为它可以在每次升级后更改。
另一方面,在目录上设置 acls 和/或混合 setuid/setgid 是我可以轻松完成的事情,而无需“破坏”标准发行版。
你怎么看待这件事 ?
以 mysql 为例,它看起来像这样:
setfacl d:g:production:rx,d:other::---,g:production:rx,other::--- /var/log/mysql /etc/mysql
Run Code Online (Sandbox Code Playgroud)
你认为这是一个好习惯还是我应该定义 usermod -G mysql 并使用标准权限系统?
谢谢
最佳实践(也是最常见的)倾向于使用sudo
. Sudo 为您提供细粒度的控制,并且配置可以同时处理多台机器。
使用 ACL 可以补充这一点——sudo
以 root 身份处理操作;ACL 将目录和文件的权限授予和剥夺给用户和组。我不会指望 setgid 和 setuid 做任何合理的事情。
我也会实施轮组;这将有助于提高安全性。检查您的su
程序是否支持轮组。
还有一件事:如果您拥有view
或less
作为读取日志文件的一种方式,那么您将面临风险:这两个程序都提供 shell 访问。