Primeiro script bash - Digite a senha root somente uma vez

0

Eu escrevi um pequeno script bash. Precisa de senha de root.

Existem apenas dois comandos, os quais precisam da permissão. Então, atualmente devo inserir a senha de superusuário duas vezes - não quero isso.

Eu vinculei o script ao desktop. E estou a executar a partir do ambiente de trabalho, quero dizer.

Meu esforço, que não funciona:

gksu -u root "iptables -D INPUT 7 && iptables -D INPUT 6"
    
por Vlastimil 15.09.2015 / 10:07

3 respostas

1

Você pode executar sh para combinar dois comandos em um:

sudo sh -c 'iptables -D INPUT 7 && iptables -D INPUT 6'

É claro que criar um script será mais conveniente se não for uma coisa única.

    
por 16.09.2015 / 04:16
3

Pessoalmente eu gostaria de escrever um script e colocá-lo em ~/bin ou algum outro diretório em $ PATH, e então ter um ícone no desktop que executa sudo <script_name> . Há muitas maneiras de fazer isso, esse é o meu método preferido:

mkdir ~/bin
editor ~/bin/myscript

Em seguida, escreva seu script:

#!/bin/bash
iptables -D INPUT 7
iptables -D INPUT 6

Salve e torne-o executável:

chmod +x ~/bin/myscript

E finalmente crie um atalho na área de trabalho que execute o script:

editor ~/Desktop/myscript

contendo:

[Desktop Entry]
Version=1.0
Type=Applicaton
Name=Myscript
Comment=My script that does something cool
Icon=help-info
Terminal=false
Exec=bash -c "sudo ~/bin/myscript"

Você será solicitado a digitar a senha sudo apenas uma vez. Espero que isso ajude você.

    
por 15.09.2015 / 10:53
0

Você pode usar sudo -v para "atualizar" as permissões. Você poderia usar isso em um loop de fundo enquanto o script é executado. (Eu adaptei isso de algum outro lugar há muito tempo, mas eu esqueci onde.)

sudo_done="/tmp/sudo.finished"
sudo_me() {
 while [ ! -f $sudo_done ]; do
  sudo -v
  sleep 5
 done &
}

stop_sudoing() {
  touch $sudo_done
  sleep 7
  rm $sudo_done
}

sudo_me &
# Your script here.
stop_sudoing &

Além disso, se não for um programa de GUI, gksu é desnecessário e sudo está bem.

    
por 15.09.2015 / 10:59