shell脚本自动输入密码

时间:2012-08-20 08:09:30

标签: shell automation passwords

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

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

编辑:我已经意识到,除非将这些命令包装在二进制文件中,否则您实际上无法执行此操作。例如,使用C程序中的system()函数。我想setuid shell脚本是一个糟糕的主意,linux根本就不使用它们。)。

虽然在某些情况下它可能很危险,但您可以将脚本设置为setuid。为此,请将该命令放入如下文件中:

#!/bin/bash
ifconfig en1 ether 00:11:22:33:44:55

然后设置权限,使其由root拥有,但只有您可以触摸该文件:

$sudo chown root file.sh
$sudo chgrp username file.sh
$sudo chmod 070 file.sh

然后把它弄糊涂:

$sudo chmod +s file.sh

现在您应该能够以用户身份执行此文件,但让它以root权限运行。

答案 2 :(得分:0)

您不希望将root密码放在可访问的文件中。

最好是在没有密码的情况下使该命令变得可行。

尝试输入/ 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

的文档