![非 root/sudo 用户访问日志](https://linux22.com/image/642815/%E9%9D%9E%20root%2Fsudo%20%E7%94%A8%E6%88%B7%E8%AE%BF%E9%97%AE%E6%97%A5%E5%BF%97.png)
我应该选择什么来允许员工访问服务器上的日志。例如,如果我有用户 webmaster 应该有权访问/var/log/{mysql,nginx, etc...}
,我该怎么做?也许添加组log-access
并将日志的所有者更改为该组?或者这不是一个好方法?
Ubuntu 是我使用的主流操作系统(很少使用 CentOS)。
答案1
这个问题涉及的范围相当大,尤其是那个模棱两可的“ETC'。我能做的是帮助您将其分解成几个部分,以便您能够更好地管理问题。您需要首先明确定义他们需要访问哪些日志,然后逐一解决。
每个日志文件,您需要考虑一些事情;
如果日志轮换由服务或守护程序处理,您需要想出一种方法来通过服务的配置设置日志文件所需的权限。您可以使用类似umask在初始化脚本中,设置组ID日志目录上的位(如果它是 /var/log 的子目录)等等。
如果日志轮换由日志旋转cron 作业,有一种方法'创造' 您可以用来设置新日志文件的所有者、组和模式。
我能想到的最后一个选项是,如果服务使用 syslog 功能,则可能需要在其中设置权限。(例如,rsyslogd。)
最终,您可能会使用上述所有方法的组合。使用组是正确的。所有者可能仍是 root 或进程所有者(无论谁在写入文件)。所有者将保留读取、写入权限,而组将保留只读权限。
为了获得更具体的答案,您的问题可能需要更具体。首先让我们知道您运行的操作系统和版本。
答案2
我建议不要提供对机器和文件的访问权限,而是提供对服务,例如 Logstash 或 Splunk。这比授予系统权限要好得多,并且可以让您从工具本身中充分利用大量实用功能。