如何使/ sbin / shutdown,/ sbin / reboot等在16.04再次需要sudo?
无论出于何种原因,我们不再需要root(或使用sudo
)来运行/sbin/shutdown
, /sbin/reboot
等。
这似乎是因为那些可执行文件现在是/bin/systemctl
符号链接,它以普通用户的身份处理所有内容。
但是,如果我想要shutdown
并reboot
以再次要求root身份validation呢? 我怎样才能做到这一点?
Systemd确实处理了shutdown
, reboot
和其他命令,并且分配的默认权限是允许的。 要更改此设置,您需要创建Polkit规则。 在/etc/polkit-1/localauthority/50-local.d
(例如, confirm-shutdown.pkla
)中创建一个.pkla
文件,其中包含:
[Confirm shutdown] Identity=unix-user:* Action=org.freedesktop.login1.* ResultActive=auth_admin_keep
在Polkit术语中,各种关闭,重启等命令是org.freedesktop.login1
,例如org.freedesktop.login1.power-off
, org.freedesktop.login1.reboot
等。这里的具体问题是默认配置,位于/usr/share/polkit-1/actions/org.freedesktop.login1.policy
:
Power off the system ... auth_admin_keep auth_admin_keep yes
请注意,它允许活动用户关闭电源,重新启动等。
您可以使用chmod
命令。
-
如果您只想授予root权限,可以写:
chmod 700 directory/to/the/file
-
如果你想让root和sudo组的权限,你可以写:
chmod 770 directory/to/the/file
-
如果要将文件组从sudo更改为另一个(如用户或管理员),则需要键入:
chown owner:group directory/to/the/file
-
如果要还原,请运行:
chown root:sudo filedirectory
注意 :您可能必须对这些命令使用sudo
,或者已登录root帐户
由于在Linux系统上更改符号链接的权限不会更改链接的权限,而是更改它指向的文件(至少在Ubuntu中)。 我认为最安全的方法是删除链接,并使用所需的umask重新创建它以获得您想要的结果。
可在此处找到另一篇相关文章
您可以创建一个脚本来检查用户是否使用root权限运行它。
然后它将运行systemctl命令或返回错误。
#!/斌/庆典 if [“$(whoami)”!=“root”]; 然后 回声“对不起,你不是根。” 1号出口 其他 (systemctl shutdown命令) 科幻
资源
尝试在终端中更改其权限。 您可以使其仅由某个组执行,例如wheel或admin。 可悲的是(或者幸运的是),一个文件只能拥有一个组所有权,所以chown就不会单独工作。 尝试“sudo chown root:wheel / sbin / shutdown”然后“sudo chmod g + x / sbin / shutdown”。 这将使文件只能由root和管理员(shudders)执行,并且sudoers将需要输入他们的密码。