Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash脚本。以用户身份登录、运行命令、注销_Bash_Sudo - Fatal编程技术网

Bash脚本。以用户身份登录、运行命令、注销

Bash脚本。以用户身份登录、运行命令、注销,bash,sudo,Bash,Sudo,嘿,伙计们,我对bash还是个新手。 我正在创建一个简单的日志,我想要实现的就是以超级用户的身份登录(sudosu)运行一些代码(写入文件),然后以超级用户的身份注销,然后执行其余的代码 以下是我的例子: 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

嘿,伙计们,我对bash还是个新手。 我正在创建一个简单的日志,我想要实现的就是以超级用户的身份登录(sudosu)运行一些代码(写入文件),然后以超级用户的身份注销,然后执行其余的代码

以下是我的例子:

 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"
我真的很难找到解决方案有很多例子,但没有这么简单的(我能找到的是)


如果您有时间提供帮助,谢谢您。

如果您执行
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"

为要作为sudo运行的代码编写一个脚本,然后在sudoers文件中放入一个异常。如果他们没有更新sudoers,这仍然会提示输入密码。它会。OP没有说密码提示是个问题。你所说的100%是我要求的@arco444