Podemos instalar um pacote através de um script de shell? [duplicado]

0

Estou tentando escrever um script de shell para que eu reinstale o meu Ubuntu novamente. Eu poderia apenas executar o script e reter todos os pacotes. E estou planejando passar a senha em forma de argumento.

Minha pergunta aqui é: como posso entrar no sudo domain sem inserir senha manualmente? Como eu também estou planejando projetar uma interface do usuário onde ele não pode acessar o terminal lá.

Ex:

./recover.sh password
    
por Pavan 30.04.2016 / 22:31

2 respostas

1

Se você não quiser digitar a senha manualmente, use a opção -A de sudo

 -A, --askpass
             Normally, if sudo requires a password, it will read it from the user's
             terminal.  If the -A (askpass) option is specified, a (possibly graphi‐
             cal) helper program is executed to read the user's password and output
             the password to the standard output.  If the SUDO_ASKPASS environment
             variable is set, it specifies the path to the helper program. 

Como usá-lo?

  1. crie um arquivo que contenha sua senha (não criptografada):

    cat .pass
    #!/bin/bash
    echo password
    
  2. Agora defina as permissões como executáveis apenas por você:

    chmod u=x,go= .pass
    
  3. agora o uso real

    SUDO_ASKPASS="~/.pass" sudo -A <command>
    

Desta forma, você pode executar qualquer comando como root sem digitar a senha

Eu não recomendo que você armazene sua senha não criptografada em seu computador, é muito inseguro.

    
por 30.04.2016 / 22:42
1

Você pode usar ...

echo password | sudo -S recover.sh

Senha sendo sua senha sudo.

Do sudo manpage ..

-S, --stdin Write the prompt to the standard error and read the password from the standard input instead of using the terminal device.

E o segundo método é

sudo -S <<< password apt-get install pkg_name
    
por 01.05.2016 / 00:24