我们这个新奇的 systemd 将我所有的秘密泄露给了外人:
guest@andreymal:~$ loginctl session-status 32757
32757 - andreymal (1000)
Since: Wed 2019-09-04 02:09:11 MSK; 2 weeks 5 days ago
Leader: 2535
Remote: 127.0.0.1
Service: sshd; type tty; class user
State: closing
Unit: session-32757.scope
├─19648 SCREEN -dmS supersecret bash -c ./secretprogram.py --password correcthorsebatterystaple
├─19649 bash -c ./secretprogram.py --password correcthorsebatterystaple
└─19650 ./secretprogram.py --password correcthorsebatterystaple
为什么非管理员用户会害怕阅读其他人的会话?systemd-logind(以及一般的 systemd)是否在某处设置了访问这些内容的设置?或者这是波特林的狡猾计划,迫使每个人都切换到容器?
在这种情况下,
loginctl
它会在 dbus 上轮询 systemd(其中 == init 并拥有所有权限):
您可以限制对文件中方法的访问
/usr/share/dbus-1/system.d/org.freedesktop.systemd1.conf
(这个由分发工具包开发人员提供):还有更多方法可以显示进程列表。删除此权限,命令输出中将没有进程列表。
这个话题没有
polkit-1
什么有趣的。隐藏此类计划秘密的最佳方法是将其放入文件中。