Como mostrar automaticamente o sudo quando o comando não tem permissões suficientes

1

Se eu tiver um arquivo

$ touch some_file.txt

E eu quero movê-lo para um diretório que requer sudo permissions

$ cp some_file.txt /usr/local/bin

Eu recebo um erro:

cp: cannot create regular file ‘/usr/local/bin/some_file.txt’: Permission denied

Então eu tenho que prefixar o comando com sudo para que ele funcione

$ sudo cp some_file.txt /usr/local/bin

Como posso obter automaticamente um prompt de senha sudo quando executo um comando que precisa de permissões?

Algo como:

$ cp some_file.txt /usr/local/bin
cp: cannot create regular file ‘/usr/local/bin/some_file.txt’: Permission denied
Please enter sudo password:
************ # Entering my password
# Command executed successfully
    
por Eyal Levin 18.01.2017 / 12:36

1 resposta

7

Embora isso possa ser possível, é uma ideia realmente muito ruim. Isso encorajaria você a executar cegamente as coisas com sudo em vez de investigar por que você não tem permissões e o que realmente está tentando fazer. Em alguns casos, isso pode levar você a usar sudo quando não for necessário e, por exemplo, pode fazer com que você altere a propriedade dos arquivos de configuração etc.

Em vez de apenas pedir cegamente pela senha sudo , você pode usar os atalhos do histórico do bash e executar:

sudo !!

O !! é expandido para o comando anterior que você executou. Por exemplo:

$ whoami
terdon
$ sudo !!
sudo whoami
root

Pelo menos, assim, você pode ver o que está acontecendo. É apenas um pouco mais complexo do que o que você pediu e é um pouco mais seguro.

    
por terdon 18.01.2017 / 12:41