Práticas recomendadas para usar o 'sudo su'

2

Eu tenho usado o terminal por um tempo agora e às vezes (na verdade, muito de vezes) eu uso um comando, como:

cp /etc/test ~/testFolder/

e eu recebo este erro:

cp: cannot open '/etc/test' for reading: Permission denied

Esse é o momento em que me lembro de ter esquecido o comando sudo antes dele, então pressione a seta para cima e depois CTRL + A para ir para o início do linha e insira um sudo lá:

sudo cp /etc/test ~/testFolder/

Existem cenários ainda piores em que você usa vim para editar um arquivo, você esquece o comando sudo e não vê o aviso quando o programa é iniciado, você edita o arquivo inteiro e, no final, você pode ' não salve!

Quando você percebe que está fazendo isso muitas vezes, isso se torna chato, especialmente se você é como eu e costumava digitar comandos sem o sudo . Existe uma maneira de resolver este problema, quando você inicia o terminal, basta digitar sudo su para usar comandos como usuário root, mas alguns dizem que é mais provável que cometa erros dos quais você se arrependerá para sempre.

Minha pergunta é, qual é a melhor prática para executar comandos como root? Usando sudo e perdendo toda vez ou automaticamente use sudo bash e correndo o risco de destruir todo o sistema?

    
por Evandro Silva 17.10.2012 / 20:56

3 respostas

4

Relaxe. Em primeiro lugar, rm -rf * ou qualquer coisa semelhante a ser executada como um usuário comum em seu diretório inicial é igualmente catastrófico. O sistema pode ser facilmente restaurado, mas são os seus dados que importam. Nos quinze anos em que eu uso o Linux, não tive nenhum grande desastre que pudesse ter sido evitado por não usar root.

(Bem, se você é um administrador de sistema, especialmente em um servidor de produção, então é outro assunto. Apenas cerre os dentes e faça isso corretamente; veja a história de horror de @jmartin2279 em outra resposta a essa pergunta).

Em segundo lugar, se você tiver um prompt diferente (por padrão, o prompt root termina com um hash, # , mas você pode torná-lo colorido), ele lembrará que você não está sendo executado como um usuário comum.

Em terceiro lugar, você é um ser humano inteligente, então você faz backups regulares. Você faz, não é? Você sabe o que eles dizem: existem dois tipos de pessoas, aqueles que fazem backups e aqueles que o farão.

Finalmente, saia do meu gramado , nos dias em que não tivemos nenhum% fedentsu ou sudo , estávamos memorizando senhas de vinte caracteres aleatórios todo mês e nós curtimos! (e às vezes, tivemos meia hora de conversa em uma única linha de comando antes de pressionar "enter")

No entanto, vim sempre avisa que você está editando um arquivo somente leitura ( "/etc/passwd" [readonly] na linha de status). Além disso, se você não puder gravar em um arquivo, poderá sempre :w /tmp/whatever .

    
por January 17.10.2012 / 21:04
5

A melhor prática é usar somente root quando você precisar. Usando sudo su , você está de fato dando ao diabo acesso ao reino. Foi chato para mim no começo, mas lembrar de usar sudo na frente de um comando me salvou de cometer erros massivos. Eu tive uma experiência em que usar sudo su arruinou tudo, em um ambiente de trabalho.

Hora da história

Estávamos usando um servidor CentOS para executar um aplicativo. O servidor era antigo e tinha sido transformado em uma VM, porque seu hardware estava morto / morrendo. Ocorreu uma invasão de invasão e a VM foi danificada. Nossos backups também foram danificados, então a única esperança de recuperar dados foi montar VM e tentar puxar tudo. Eu usei sudo su e comecei a trabalhar. Recuperei cerca de 10% quando acidentalmente executei o comando errado, limpei o banco de dados e perdemos o aplicativo e todos os dados. Eu nunca corri sudo su novamente, e não vou. Lição aprendida da maneira mais difícil .

    
por jmartin2279 17.10.2012 / 21:10
1

Nos dias que antecederam a utilização de um sistema sudo (leia-se: antiga Red Hat), usei várias técnicas para me lembrar quando estava rodando como root: um prompt vermelho, "root" na barra de título, etc. Atualmente, executo sudo e não tenho nenhuma alteração imediata. Eu nunca tive um problema de operar como root que teria sido resolvido ao prefixar sudo para um comando.

Eu tenho um atalho para editar arquivos. Eu tenho um script bash semelhante ao seguinte em ~/bin/vi (e ~/bin é a primeira entrada no meu $ PATH):

#!/bin/bash
if [[ ! -w "$1" ]]; then
  exec sudo vim "$@"
else
  exec vim "$@"
fi

Eu estou digitando isso da memória, então cuidado com os bugs. A ideia é que, se o primeiro arquivo denominado não gravável, ele use automaticamente sudo . Obviamente, esta abordagem não é perfeita, mas tem sido boa o suficiente por vários anos.

    
por Scott Severance 18.10.2012 / 07:34