如何使用 sudo 以另一个用户身份在脚本的一部分中运行多个命令?

如何使用 sudo 以另一个用户身份在脚本的一部分中运行多个命令?

我正在尝试运行以下命令:

if [! -f .owner ]; then
    creator=$(whoami)
    sudo -u appuser ksh
    echo "$creator" >> .owner
    mkdir test1 test2 test3
    exit
fi

但是,文件/文件夹是由运行脚本的人创建的。有什么办法让这些由 appuser 创建吗?

编辑sudo -l返回(appuser) NOPASSWD: ALL

答案1

尝试:

    #!/bin/bash
    id
    touch script-run-user.file

    sudo -u appuser 'ksh' <<EOF
    # add list of cmds to execute
    id
    touch appuser.file 
    EOF

编辑: 刚刚更新,看看这里的文件。 EOF =“文件结束”,名称任意。

相关内容