如何强制“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 将被替换...
为什么nspawn
比docker
podman
和 甚至慢qemu
?!CPU 任务花费的时间是 docker、podman 或 qemu 中的两倍
这是我所做的基准测试:
首先,我使用以下命令禁用了主机内核(以及 qemu 基准测试中的 qemu 来宾内核)中的所有 spectre/meltdown 缓解措施:
GRUB_CMDLINE_LINUX_DEFAULT=noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off spectre_v2_user=off spec_store_bypass_disable=off nx_huge_pages=off kvm.nx_huge_pages=off kvm-intel.vmentry_l1d_flush=never srbds=off
Run Code Online (Sandbox Code Playgroud)
然后我使用了这个基准测试:
git clone https://github.com/tsuna/contextswitch
cd contextswitch
time make
Run Code Online (Sandbox Code Playgroud)
我nspawn
用超级完整的权限进行了测试:
export SYSTEMD_NSPAWN_USE_CGNS=0
systemd-nspawn --keep-unit --register=no --boot --capability=all --private-users=false --system-call-filter="@default @aio @basic-io @chown @clock @cpu-emulation @debug @file-system @io-event @ipc @keyring @memlock @module @mount @network-io @obsolete @privileged @process @raw-io @reboot @resources …
Run Code Online (Sandbox Code Playgroud) docker ×1
linux ×1
performance ×1
pkexec ×1
podman ×1
qemu ×1
shell-script ×1
sudo ×1
systemd ×1