在 KDE 设置中,您可以分配一个快捷方式来执行您的任意命令。
要在 KDE 中为快捷方式分配命令,您可以执行以下操作。在System Settings
-> Shortcuts
->Custom Shortcuts
中,右键单击,选择New
-> Global Shortcut
-> Command/URL
。转到Action
选项卡并填写命令。并在Trigger
选项卡中分配实际的快捷方式。这种机制对于非 sudo 命令正常工作。
但不幸的是,当我使用需要 root 权限的命令时(假设sudo systemctl start something
),它只是没有执行。
有没有办法绕过这个限制?我希望能够触发需要评估权限的操作。
一种解决方案是使用可执行文件,该可执行文件由 root 拥有并具有 SUID 位。
很可能,您没有自己的二进制文件,而是想使用命令。如果您使用 suid 位创建 bash 脚本文件,suid 位将被忽略,请参阅为什么 setuid 不起作用?.
因此,对于您的命令,您需要编译一个二进制文件。
创建文件
start_smth.c
:编译并设置权限:
在设置的 Command/URL 字段中,填写 start_smth 二进制文件的路径,例如
/home/user/bin/start_smth
.如果你有很多命令需要以这种方式准备,你可以使用这个脚本
compile_and_set_permissions.sh
:然后将ac文件作为参数传递: