systemctl status <servicename>.service
手动停止新安装的服务后运行时,我收到此警告。
“警告:由于权限不足,某些日志文件未打开。”
日志文件是什么意思?它指的是什么?
答案1
tl;dr:使用sudo systemctl status ...
。
当您使用 时systemctl
,您正在使用代理systemd
与根进程进行通信。 systemd
可能会跟你顶嘴,但它不会告诉你整个故事,除非你有权限这样做。
其中一部分systemctl status
是向您显示该单元的最新日记条目。
在我的设置中,文件/var/log/journal/{machine-id}/*.journal
具有以下权限:
-rw-r-----+ 1 root systemd-journal 117440512 Jun 28 08:02 [email protected]~
-rw-r-----+ 1 root systemd-journal 92274688 May 31 08:21 system@70d66b763a2e48928c16fc2c8a23fbfa-0000000000000001-0005e0363468a504.journal
-rw-r-----+ 1 root systemd-journal 50331648 Jun 2 12:05 system@70d66b763a2e48928c16fc2c8a23fbfa-000000000001a077-0005e048c99c4a31.journal
这意味着root
的成员systemd-journal
可以直接读取日志文件。表示+
还设置了附加权限 (ACL):
$ getfacl [email protected]
...
group:adm:r-x #effective:r--
...
这表示组中的任何人adm
也具有读取权限。
systemd
当您要求它告诉您有关期刊的信息时,会考虑到这一点。如果您不在 groupsystemd-journal
或中adm
,systemd
则将检查日志是否属于您的--user
巴士,或者是否有特定polkit
规则授予您特定条目的权限。它只会告诉您您被允许知道的信息。
最简单的答案是使用sudo systemctl status
有效地成为root
然后询问systemctl
该信息。
答案2
正如上面评论中的 @Quolonel Question 所建议的,最好的(当然也是最简单的)方法可能是确保您的用户属于该adm
组。在我的 Ubuntu 系统上,可以这样实现:
sudo usermod -G adm <myuser>
注销您的用户会话并重新登录,您应该能够访问该信息,而无需sudo
。