2017-09-06 181 views
1

嗨,我很新,bash。 我正在创建一个简单的记录器,我想实现的就是以超级用户身份登录(sudo su)运行一些代码(写入文件),然后以超级用户身份注销,然后执行其余代码Bash脚本。以用户身份登录,运行命令,退出登录

这是我的例子:

read -p "Are you sure you want to log this?" -n 1 -r 
if [[ $REPLY =~ ^[Yy] ]] 
    then 
    sudo su 
    if [ "$EUID" -ne 0 ] 
    then 
     echo $log >> ~/Logs/logs.txt    
    fi 
    exit 
fi 
echo "DONE" 

我真的在努力寻找解决办法也有例子,但没有如此简单(我能找到的)

谢谢你,如果你发现时间助攻。

+0

写出你想为须藤运行代码的脚本,然后在sudoers文件中出现异常。 – 123

回答

1

如果你做一个sudo su,你会得到一个交互式会话 - 也许你应该只执行写,而不是日志的命令:

read -p "Are you sure you want to log this?" -n 1 -r 
if [[ $REPLY =~ ^[Yy] ]] 
then 
sudo bash -c "if [ \"$EUID\" -ne 0 ]; then echo $log >> ~/Logs/logs.txt; fi" 
fi 
echo "DONE" 
+0

如果他们没有更新sudoers,这仍然会提示输入密码。 – 123

+0

它会的。 OP没有说任何有关密码提示的问题。 – arco444

+0

你说的是我要求的100%@ arco444 – Devaux