我只是创建一个小的脚本来更改mac地址。每次我运行它时,我都必须输入sudo密码。如何允许脚本输入密码或跳过sudo验证? 或者还有另一种方法来创建此脚本?也许使用python? 这是我的脚本:
#!/bin/bash
nmcli radio wifi off
sudo macchanger wlp6s0 -a
nmcli radio wifi on
答案 0 :(得分:0)
您要做的是修改sudoers
文件,以使运行脚本的用户无需输入密码即可访问特定命令。
有关更多信息,请参见以下答案:https://askubuntu.com/questions/334318/sudoers-file-enable-nopasswd-for-user-all-commands
简而言之,请致电visudo
并添加以下条目:
your_user ALL=(ALL) NOPASSWD:/path/to/the/binary/macchanger wlp6s0 -a
当然,将/path/to/the/binary/macchanger
与通过运行which macchanger
找到的真实路径交换。
现在,用户your_user
可以通过sudo
使用带有确切参数的单个命令运行而无需密码。
而且,正如Cyrus所指出的,man
是您的朋友。最好先始终检查手册页。通常,您会通过阅读并尝试一些想法来找到问题的答案。在这种情况下:man visudo
和man sudo.conf
。
答案 1 :(得分:0)
与其一起玩sudo
并冒着扎根的风险
您可以设置访问可能不负责任的程序
cap_net_admin
在二进制文件上:
sudo setcap cap_net_admin+ep "$(command -v macchanger)"
这只是一次操作。现在,您可以从自己的帐户中删除sudo
脚本,它将起作用。
也许使用python吗?
不,那无济于事。语言无关紧要。是内核 允许或禁止执行某些操作。