2014-03-28 30 views
1

我写了这个小脚本来帮助我减少参与启动和停止我的本地机器上的服务器LAMPP麻烦:硬编码的超级用户口令进入bash脚本

#!/bin/sh 
#script to make lampp start/stop easier 

if [ $1 == "start" ] ; then 
    sudo /opt/lampp/lampp start & 
elif [ $1 == "stop" ] ; then 
    sudo /opt/lampp/lampp stop 
else 
    echo 'Wrong parameter.' 
fi 

我现在想往前走了一步并将超级用户密码硬编码到它中,以便我不必每次都输入它。我尝试了类似echo 'XXXX' | sudo /opt/lampp/lampp start &,但得到了三次失败尝试错误。

这怎么办?

+0

这可能是更容易这个脚本添加到sudoers的与NOPASSWD选项,所以你可以只调用脚本作为'sudo myscript.sh'。 – Tyler

+0

我需要了解更多信息,但是这并不意味着所有创建的脚本都必须添加到sudoers中吗?上帝,我很懒! :D – dotslash

+1

懒惰很好。你会制作有效的(DRY)脚本...阅读手册,无论如何... – jm666

回答

2

假设你的用户名是“dotslash”:

sudo sh -c 'echo "dotslash ALL = NOPASSWD: /opt/lampp/lampp" > /etc/sudoers.d/dotslash' 

然后你可以

alias lampp='sudo /opt/lampp/lampp' 
lampp start 
+0

啊!不完全是我想要的,但超级酷! :d – dotslash