我想运行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