Como uso o sudo para executar vários comandos como outro usuário dentro de uma parte de um script?

4

Estou tentando executar o seguinte:

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

No entanto, os arquivos / pastas são criados pela pessoa que executa o script. Qualquer maneira de fazer isso ser criado pelo appuser?

Editar : sudo -l retorna (appuser) NOPASSWD: ALL

    
por charles 22.07.2014 / 22:06

1 resposta

7

Tente:

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

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

Editar : Assim como uma atualização, confira Aqui Documentos . EOF="End Of File", o nome é arbitrário.

    
por 22.07.2014 / 22:34