为系统帐户分配权限

为系统帐户分配权限

我正在尝试摆脱使用 root 运行 cron 计划作业,因此思考过程是创建一个无需登录的系统帐户(/dev/null home、/sbin/nologin shell)来运行我们需要运行的每个 cron 作业。我只是好奇如何为这些帐户提供适当的权限以在需要的地方运行,而不更改通常仅限于 root 的普通文件和文件夹的所有权。

例如,假设我希望此系统帐户将其正在执行的操作的日志文件输出到 /var/log,但是,/var/log/ 由 root 拥有,并且设置为 755。此进程将无法创建在那里记录文件而无需以 root 身份运行,对吗?

我是否正确地假设使用 Linux 内核功能是实现此目的的最佳方法?

答案1

实现此目的的一种方法是将日志放入下面的子文件夹中/var/log,然后设置子文件夹的权限。

另一个原因是登录系统日志logger并使用过滤器将日志重定向到特定文件。

例如

# /etc/rsyslog.d/10-myrules.conf
if $programname == ["script1", "script2"]
then { 
    action(type="omfile" file="/var/log/myscripts/sys.log")
    stop
}

您可能还应该在执行此操作时设置 logrotate 规则。

相关内容