我正在尝试运行三个单独的 nmcli 命令
nmcli connection down config-AP
nmcli connection up config-AP
nmcli device wifi hotspot con-name config-AP ssid device band bg password password
如果这些不被称为 root,它们就会超时
Error: Timeout 10 sec expired.
如何允许这些命令运行而不将用户添加到 sudoers 文件中?
答案1
如果您有一个命令不会造成任何损害,但需要 root 权限,您可以将其更改为具有“设置用户 id”(设置 uid 或 suid)属性。这是一个例子:
ls -l /bin/chsh
-rwsr-xr-x 1 root root 23376 Mar 22 21:23 /bin/chsh*
该文件具有“s”标签,表明在执行期间它将采用root
(第三列)用户 ID。
然而,这有潜在的危险,如果该命令本身没有被编程为处理被调用的 suid 0,则能够调用该命令的本地攻击者可能会接管您的系统。您已收到警告。
话虽如此,你可以这样做:
chmod u+s,a-w /usr/bin/nmcli
(如有必要,请更改路径,例如/bin/nmcli
根据您的系统)
如果您希望限制人们能够调用(现在很危险)命令,您可以使其仅可供特殊组访问,例如通过
chgrp john /usr/bin/nmcli
chmod o= /usr/bin/nmcli
这样,只有组中的某个人john
(和 root)可以调用该命令。理想情况下,使用只有您的用户所在的组。