如何强制“machinectl shell”或systemd-run在终端而不是对话框窗口中询问密码?
我可以使用以下命令以 root 身份运行命令:
machinectl shell --uid=root --setenv='DISPLAY=:1.0' --setenv=SHELL=/bin/bash .host /bin/bash -lc 'startxfce4'
Run Code Online (Sandbox Code Playgroud)
我想拥有与 sudo 相同的行为(sudo 使用终端询问密码,以便我可以轻松编写脚本)
我发现正在使用 ssh 这样的方式:
ssh -t MyActualNormalUser@localhost
Run Code Online (Sandbox Code Playgroud)
然后运行与上面相同的命令:
machinectl shell --uid=root --setenv='DISPLAY=:1.0' --setenv=SHELL=/bin/bash .host /bin/bash -lc 'thunar'
Run Code Online (Sandbox Code Playgroud)
现在 machinectl 使用终端而不是 GUI 对话框窗口询问密码!

如何在不使用 ssh 的情况下获得相同的结果?是否可以强制 machinectl/pkexec 在终端中询问密码?
为什么不使用sudo?sudo 不要为我运行的命令创建一个新会话,machinectl 运行一个完全分离的会话,这使脚本编写工作更轻松。当我读到 machinectl/pkexec 时,如果我没记错的话,su/sudo 将被替换...
sudo名为的用户在尝试重新加载Amazon Linux 2 EC2 映像my-host时收到以下错误消息。systemctl
[my-host@ip-12-3-4-56 ~]$ systemctl --user daemon-reload\nFailed to get D-Bus connection: Connection refused\nRun Code Online (Sandbox Code Playgroud)\n\n\n具体需要做什么来解决和消除此错误?
\n
我发现的关于此错误消息的其他帖子要么与 Debian 相关,其apt-get解决方案不适用于此处,要么与 Docker 映像相关,该解决方案也不适用于此处。
\n\n如果问题与用户权限有关,需要采取什么措施来修复该问题?
\n
这台机器有一个要求,systemctl像这样的一些命令不能作为sudo.
根据 @Stewart 和 @JdeBP 的建议再次尝试直接登录用户:
\n然后我们尝试使用具有来自外部世界的直接 ssh 能力的 sudo 用户,但仍然得到以下结果:
\n[ssh-login-user@ip-12-3-4-567 ~]$ systemctl --user daemon-reload\nFailed to get D-Bus connection: No such file or directory\n[ssh-login-user@ip-12-3-4-567 ~]$ echo $XDG_RUNTIME_DIR $UID\n/run/user/1001 1001\n[ssh-login-user@ip-12-3-4-567 ~]$ systemctl --user status\nFailed to …Run Code Online (Sandbox Code Playgroud)