所以我做了一个小脚本来更改我的mac地址,但它需要我输入我的密码才能进行切换......我可以添加什么让它为我输入它?
sudo ifconfig en1 ether 00:11:22:33:44:55
所以我做了一个小脚本来更改我的mac地址,但它需要我输入我的密码才能进行切换......我可以添加什么让它为我输入它?
sudo ifconfig en1 ether 00:11:22:33:44:55
您可以在 /etc/sudoers sudo 配置文件中为您的 id 添加 ifconfig 命令
编辑:我现在已经意识到,除非您将这些命令包装在二进制文件中,否则您实际上无法做到这一点。例如,使用 C 程序中的 system() 函数。我想 setuid shell 脚本是一个糟糕的主意,以至于 linux 根本不使用它们 :)。
虽然在某些情况下可能很危险,但您可以将脚本设置为 setuid。为此,将该命令放入文件中,如下所示:
#!/bin/bash
ifconfig en1 ether 00:11:22:33:44:55
然后设置权限,使其归根用户所有,但只有您可以触摸该文件:
$sudo chown root file.sh
$sudo chgrp username file.sh
$sudo chmod 070 file.sh
然后让它suid:
$sudo chmod +s file.sh
现在您应该能够以您的用户身份执行此文件,但要以 root 权限运行它。
您不想将根密码放在可访问的文件中。
最好是在没有密码的情况下使该命令成为 sudoable。
尝试输入 /etc/sudoers
<your username> ALL=(ALL) NOPASSWD: ifconfig
这表示只要命令是 ifconfig,您的用户就不需要为 sudo 输入密码。
不过,您可能应该首先阅读 sudoers 文件的一般工作原理。不知道你在做什么,但这里有 Ubuntu 的文档: https ://help.ubuntu.com/community/Sudoers
这是 OSX 的文档http://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/sudoers.5.html