如何赋予特定命令权限?

如何赋予特定命令权限?

我想运行fastboot不带 . 的命令,如果我把它放在前面,sudo它就会起作用,否则它就不会起作用。sudo

像这样:

$ sudo fastboot devices
2738006a    fastboot

$ fastboot devices
no permissions  fastboot

我该如何解决这个问题?

答案1

使用 sudoers 文件

/etc/sudoers正确的方法是在文件中添加类似如下的一行:

username     ALL = NOPASSWD: /bin/path/to/fastboot

这意味着这个特定的“用户名”可以运行fastboot命令而sudo无需提供任何密码anyone

现在,当您使用它运行时,sudo fastboot它不会要求您输入密码,并且使用速度更快。

然后只需向您的添加一个简单的别名.bashrc

alias fastboot='sudo fastboot'

使用 SUID 位

我强烈推荐上述解决方案;

如果您的fastboot程序是二进制文件,您可以执行以下操作:

sudo chown root:$(id -gn) /path/to/fastboot
sudo chmod 4750 /path/to/fastboot

首先,我们确保root该文件的所有者是该文件,并且该文件属于您的主要组,然后我们使所有者和组能够运行该文件,同时添加 SUID 位(4),这意味着文件将以所有者的权限(root)运行。

现在它可以在没有 sudo 的情况下工作,但是只有 root 和您才能运行它。

答案2

你看到这个链接了吗?通过更改 /etc/sudoers 文件,你可以轻松做到这一点。

https://unix.stackexchange.com/questions/215412/allow-certain-guests-to-execute-certain-commands

相关内容