如何让特定的组对systemd的日记具有读取权限?

斯图尔特

如何授予读取somegroup系统日志的只读权限(我正在使用Debian10破坏者)。

$ journalctl  
Hint: You are currently not seeing messages from other users and the system.
      Users in the 'systemd-journal' group can see all messages. Pass -q to
      turn off this notice.
No journal files were opened due to insufficient permissions.

我知道可以将用户添加到systemd-journal组中,但是如何授予组读取权限?

斯图尔特

tl; dr

创建以下文件:

# /etc/tmpfiles.d/somegroup_journal.conf
#Type  Path                           Mode User Group Age Argument
a+     /run/log/journal               -    -    -     -   d:group:somegroup:r-x
a+     /run/log/journal               -    -    -     -   group:somegroup:r-x
a+     /run/log/journal/%m            -    -    -     -   d:group:somegroup:r-x
a+     /run/log/journal/%m            -    -    -     -   group:somegroup:r-x
a+     /run/log/journal/%m/*.journal* -    -    -     -   d:group:somegroup:r--
a+     /run/log/journal/%m/*.journal* -    -    -     -   group:somegroup:r--

如何弄清楚:

man systemd-journald.service(8)具有以下内容:

可以通过文件系统访问控制列表(ACL)授予其他用户和组对日记文件的访问权限。发行版和管理员可以选择使用以下命令向“ wheel”和“ adm”系统组的所有成员授予读取权限:

# setfacl -Rnm g:wheel:rx,d:g:wheel:rx,g:adm:rx,d:g:adm:rx /var/log/journal/

虽然这听起来很完美,示例接触/var/log/journal/,但journalctl优先排序/run/log/journal/这表现在以下来源

if (laccess("/run/log/journal", F_OK) >= 0)
        dir = "/run/log/journal";
else
        dir = "/var/log/journal";

/* If we are in any of the groups listed in the journal ACLs,
 * then all is good, too. Let's enumerate all groups from the
 * default ACL of the directory, which generally should allow
 * access to most journal files too. */
r = acl_search_groups(dir, &g);

/run被安装为tmpfs,因此以下ACL规则可能不会持续存在:

# setfacl -Rnm g:somegroup:rx,d:g:somegroup:rx /run/log/journal/

要使其保持不变,请配置用于生成的内容/run/log/journal浏览更多资源,我们发现tmpfiles.d/systemd.conf.m4

z /run/log/journal 2755 root systemd-journal - -
Z /run/log/journal/%m ~2750 systemd-journal - -
m4_ifdef(`HAVE_ACL',`
a+ /run/log/journal/%m - - - - d:group:adm:r-x
a+ /run/log/journal/%m - - - - group:adm:r-x
a+ /run/log/journal/%m/*.journal* - - - - d:group:adm:r--
')'m4_dnl

这表明需要在中添加ACL规则tmpfiles.d上述文件的编译版本可在本地找到/usr/lib/tmpfiles.d/systemd.conf将该示例与man tmpfiles.d(5)结合使用可提供一些详细信息,以帮助创建可行的解决方案。

创建以下文件:

# /etc/tmpfiles.d/somegroup_journal.conf
#Type  Path                           Mode User Group Age Argument
a+     /run/log/journal               -    -    -     -   d:group:somegroup:r-x
a+     /run/log/journal               -    -    -     -   group:somegroup:r-x
a+     /run/log/journal/%m            -    -    -     -   d:group:somegroup:r-x
a+     /run/log/journal/%m            -    -    -     -   group:somegroup:r-x
a+     /run/log/journal/%m/*.journal* -    -    -     -   d:group:somegroup:r--
a+     /run/log/journal/%m/*.journal* -    -    -     -   group:somegroup:r--

快速测试加上重新启动,确认此功能有效!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查共享点组在SPListItem中是否具有读取或写入权限

如何在Django中获取具有特定权限组的所有用户的列表

如何获取特定用户是否在根节点上具有{写入,读取}权限

mysql获取具有特定权限的组列表

使用没有日记的systemd

如何获得具有特定权限的所有角色

如何通过PowerShell将具有数据写入和数据读取权限的AAD组添加到Azure数据库

即使该用户仅通过组具有对该文件的读取访问权限,该组的用户也能够删除文件

如何对具有特定权限集的文件进行chmod

插入后如何使特定设备具有读/写权限?

具有IAM权限的Cognito组

如何搜索具有特定模式的3行组?

如何允许rwx访问具有ACL的特定组?

如何按列具有特定值的组求和

允许对Firebase Firestore中的一个特定集合具有读取访问权限

“ cd:权限被拒绝”,尽管该组具有访问权限

如何为systemd日记创建日志条目?

phpmyadmin,neginx error.log-检查组www-data具有读取访问权限和open_basedir

如何读取Java中具有特定字符编码的文件?

shmat()权限被拒绝,即使我具有读取权限

如何确定其他哪些组对文件夹具有写权限?

如何找到具有sysadmin访问SQL Server Express权限的Windows用户和组?

如何使用具有组写入权限的file_put_contents创建文件?

django 验证并具有登录权限后如何将用户添加到组

以编程方式从systemd的日记中读取消息

如何为已经具有默认组的文件夹添加只读组权限,并为所有新创建的文件和文件夹继承该权限?

如何根据组/权限仅在带有 ModelChoiceField 的 Form 中显示特定值?

查找所有具有组只写权限的文件

如何检查特定用户是否对Delphi中的文件夹/文件具有特定访问权限