Como eu digo a um shell script minha senha?

6

Estou tentando criar um script que execute sudo apt-get update e sudo apt-get autoremove sempre que eu fizer login. É assim:

#!/bin/bash
(sudo apt-get update)
(sudo apt-get autoremove)

Mas sempre que executo o script, ele congela meu computador. Estou assumindo que é porque está esperando o script fornecer uma senha. Funcionaria se eu adicionasse PASSWD:mypassword após os comandos assim:

#!/bin/bash
(sudo apt-get update)PASSWD:mypassword
(sudo apt-get autoremove)PASSWD:mypassword

ou há algo mais que eu deveria fazer? Existe mesmo um caminho? Se sim, por favor me diga!

    
por It's Willem 21.04.2015 / 19:50

3 respostas

3

Você não precisa incluir sua senha em seu script (pelo que vi, geralmente não é aconselhável ter sua senha em um script). Em vez disso, você pode editar seu arquivo sudoer para permitir que você execute o comando apt-get sem a necessidade de uma senha.

Para mais informações, acesse este site .

abra um terminal ( ctrl + alt + T )

Digite o comando

sudo visudo

No final do tipo de arquivo sudoers

username ALL=(ALL) NOPASSWD: /usr/bin/apt-get

Em que nome de usuário é seu nome de usuário (obviamente)

editar este arquivo permitirá que você execute qualquer um dos comandos do apt-get sem digitar uma senha. Isso significa que você também pode instalar ou atualizar pacotes sem digitar sua senha.

Você também pode adicionar outros comandos a essa lista, inserindo o caminho para o comando após uma vírgula. O caminho para um comando pode ser encontrado inserindo o seguinte comando em um terminal.

which command

Onde comando é o nome do comando (por exemplo, reinicialização).

    
por Rumesh 23.04.2015 / 04:56
0

O comando para iniciar um scream bash:

#! / bin / bash

O comando para solicitar a senha de root dos usuários:

["$ UID" -eq 0] || exec sudo bash "$ 0" "$ @"

Exemplos de comandos do que pode ser o próximo:

apt-get update

apt-get upgrade --sim

desligamento -r agora

Boa sorte com o seu script

    
por Martijn 18.12.2016 / 22:12
-1

Experimente este script:

#!/bin/bash
echo "yourpassword" | sudo -S apt-get update
echo "yourpassword" | sudo -S apt-get autoremove

Aqui, você ecoa sua senha e lê a senha usando a opção -S (opção stdin para sudo).

    
por Rajesh N 24.04.2015 / 12:47