Fazer algo no terminal que envolva mudança de usuário [fechado]

-1

Eu quero fazer algo no terminal que envolva alterar o usuário como:

sudo su
do something
do something
exit
do something
do something
sudo su
do something
do something
exit

Eu tentei fazer algo que precisa do privilégio de root assim:

#!/bin/bash
sudo su
mkdir -pv /mnt/directory
exit

mas não funcionou. O comando mkdir não é feito pela raiz. Isso me dá a mensagem "permissão negada" porque o script não está na raiz.

É possível fazer algo assim? Se sim, como?

EDITAR

Me desculpe se minha pergunta não está clara. O que quero dizer é fazer o script mudar o usuário em segundo plano apenas inserindo a senha uma vez para todos os comandos que precisam de privilégios de raiz. Adicionar sudo para todos os comandos que precisam de privilégios de root não é o que quero dizer.

    
por Mas Bagol 22.01.2015 / 19:36

1 resposta

2

Você pode prefixar sudo em todos os comandos. Certifique-se de executar o script como root, o usuário sem privilégios será colocado conforme necessário

#/bin/bash
do-something-neat                           # Run as invoking user (root)
sudo -u randomuser do-something-else        # Run as "randomuser" user
make potato --type=Mashed                   # Run as invoking user (root)
./servePotato.sh                            # Run as invoking user (root)
sudo -u randomuser eat MashedPotato.o       # Run as "randomuser" user
sudo -u fishy echo "I wanted potato!"       # Run as "fishy" user              
    
por Kaz Wolfe 22.01.2015 / 19:46