Journalctl 记录在不同用户下运行的单元,无需 sudo

Journalctl 记录在不同用户下运行的单元,无需 sudo

假设我有两个用户。一位是管理员并具有 sudo 权限,一位是普通用户。普通用户运行一个进程,管理员希望在不使用 sudo 的情况下查看进程日志。如何实现这一目标?我还尝试将 admin 添加到 adm 和 systemd-journal 中,虽然有关看不到其他用户和系统日志的错误消息消失了,但日志仍然不显示。进程写入/var/log/journal dir stat: Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 803h/2051d Inode: 17039878 Links: 2 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2022-11-03 21:45:05.578697401 +0100 Modify: 2022-10-17 22:40:23.353619074 +0200 Change: 2022-10-17 22:40:23.353619074 +0200 Birth: -

答案1

手册页指出...

“systemd-journal”、“adm”和“wheel”组的成员可以读取所有日志文件。

因此,只要您是这些组之一或 root 用户,您就会看到记录到日志中的所有消息。要仅查看特定用户的日志,您可以过滤符合给定条件(例如用户 id: )的条目 journalctl _UID=1000

还有其他有趣的字段可以匹配,例如_GID=1000, (大部分与打开新会话时_SYSTEMD_OWNER_UID=1000相同,但还包括一些 pam 消息)、和。_UID[email protected]_SYSTEMD_SLICE=user-1000.slice

为journalctl启用详细输出时,您可以看到更多这些字段journalctl -o verbose

相关内容