Teste o valor de retorno do gksudo:
if ! gksudo -m "Input Password" clear ; then
echo Bad password
exit 1
fi
exatamente eu quero fazer um script e adicioná-lo ao atalho do atalho ...
quando eu clico duas vezes no ícone, ele irá aparecer uma janela de terminal (pronto)
no terminal, ele pedirá a senha do root no começo.
e, em seguida, fazer algumas coisas com privilégios de root (eu faço isso como uma função) ..
depois disso, no final do script, fechará a janela
como "pressione qualquer tecla para fechar a janela" (eu posso fazer isso)
#!/bin/sh
touchpad(){
whoami
}
sudo -S touchpad # but it return error "command not found"
como executar uma função como usuário root?
ou há outra maneira de fazer isso?
EDITAR:
vou tentar isso
#! / bin / bash
sudo ./main2.sh #this not work when i make it as a launcher
exit
este é o meu código atual (depois de googling):
#!/bin/bash
gksudo -m "Input Password" clear
sudo whoami
#sudo bla bla bla
read -n 1 -p "Press any key to close window"
isto é o que eu quero, mas tenho erro se eu digitar a senha errada por 3 vezes ..
como forçar a sair da janela principal se o gksudo falhar ??
Teste o valor de retorno do gksudo:
if ! gksudo -m "Input Password" clear ; then
echo Bad password
exit 1
fi
Você não pode. Para fazer isso, você precisa colocar a função em outro script e executar esse script com o sudo.
O Sudo só executa comandos, não pode acessar funções dentro do seu script, pois ele é executado em um processo separado. Se você insistir em executar uma função em seu script, poderá executar o script novamente com sudo, mas passará um argumento com $1
que executa a função diretamente.
que tal usar o gksudo? Ele solicitará ao usuário a digitação da senha. Então deve funcionar apenas com sudo.
IMHO ... A maneira mais simples de executar o script inteiro como root sem ter que lembrar que ele precisa ser executado como root Parece que deve funcionar para o que você está tentando realizar
#!/bin/bash
dScript=$0
if [[ ${UID} -gt 0 ]] ; then
sudo ${dScript}
exit
fi
### the rest of your script
Tags scripts