Eu escrevi alguns scripts que possuem comandos como:
gsettings ...
nohup nm-applet &
Ambos os comandos mostraram feedback ao executar o script sem o sudo (como usuário normal).
Quando iniciei o script usando o sudo, o script foi executado com êxito, mas esses comandos não mostraram nenhum feedback.
A execução do script com o sudo usando comandos como esses não funciona mesmo quando whoami
já mostra o usuário normal. Exemplo:
#!/bin/bash
exitfn() {
#try1
nohup nm-applet &
#try2
sudo -i -u normaluser bash <<EOF
whoami
nohup nm-applet &
EOF
#try3
su - normaluser -c "whoami && nohup nm-applet &"
}
trap "exitfn" INT
sudo killall nm-applet
sleep 3600
trap SIGINT
No final, optei por separar as partes do script na parte normaluser e em uma parte onde o sudo é necessário, mas ainda estou me perguntando por que esse é o caso. Existe uma maneira de obter esses dois comandos em execução em um script chamado com sudo?
UPDATE
gsettings :
Acontece que preciso adicionar gsettings --schemadir
já que a extensão que eu instalei é apenas no diretório home; não na raiz.
Adicione sudo -E
como sugerido por @meuh
nm-applet :
Com sudo
, ele foi executado, mas não foi exibido no notifbar da área de trabalho.
Sem sudo
, foi executado e mostrado no notifbar da área de trabalho.
Tags sudo gnome ubuntu shell-script