3

所以我做了一个小脚本来更改我的mac地址,但它需要我输入我的密码才能进行切换......我可以添加什么让它为我输入它?

sudo ifconfig en1 ether 00:11:22:33:44:55
4

3 回答 3

4

您可以在 /etc/sudoers sudo 配置文件中为您的 id 添加 ifconfig 命令

于 2012-08-20T08:12:06.050 回答
3

编辑:我现在已经意识到,除非您将这些命令包装在二进制文件中,否则您实际上无法做到这一点。例如,使用 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 权限运行它。

于 2012-08-20T08:14:04.723 回答
0

您不想将根密码放在可访问的文件中。

最好是在没有密码的情况下使该命令成为 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

于 2012-08-20T08:16:27.090 回答