Alterar usuário na função shell?

1

Eu gostaria de mudar o usuário dentro de uma função shell. Eu acho que não é possível alterar o usuário em uma função tão fechada, mas existe outra maneira de conseguir algo assim?:

myFunction() {
    user=$1
    echo "Changing user to $user"
    su - $user
    whoami
    [do my stuff here for this user]
    return 0
}
    
por CodingNG 06.06.2016 / 22:53

1 resposta

0

Você precisa colocar os comandos que deseja executar por "usuário" em um script e, em seguida, executar o script usando sudo , que deve ser usado em vez de su .

Por exemplo:

myFunction() {
    user="$1"
    tmpfile=$(mktemp)
    echo "date" >> $tmpfile
    # ... put other stuff in tmpfile
    sudo -u $user $tmpfile
    rm $tmpfile
}
    
por 06.06.2016 / 23:28

Tags