O sudo pode ser reinstalado após ser removido?

58

Este parece ser um problema de ovo de galinha. A tarefa mais comum usando sudo é instalar e remover o software.

sudo apt-get purge <appname>

Mas o sudo em si pode ser removido.

sudo apt-get purge sudo # Do not run this command on production computers!

É aqui que a diversão vem

ubuntu@ubuntu:~$ sudo
bash: /usr/bin/sudo: No such file or directory

Embora seja óbvio que nenhuma pessoa em sã consciência limpará sudo (além de mim), alguém pode ser enganado para executar este comando (não diretamente, em seu modo hexadecimal, ou qualquer outra coisa é chamado) ou uma pessoa poderia SSH em disfarçada de guru da tecnologia e fazer a bagunça .

Existe uma maneira de reinstalar o sudo?

    
por Registered User 15.03.2014 / 10:24

7 respostas

52

Eu posso instalar aplicativos usando:

pkexec apt-get install <appname>

De man pkexec :

  pkexec allows an authorized user to execute PROGRAM as another user. If
  username is not specified, then the program will be executed as the
  administrative super user, root.

Então, suponho que pkexec apt-get install sudo também funcione.

Editar : agora posso confirmar: yes , sudo pode ser instalado usando pkexec apt-get install sudo :

( clique para ampliar )

    
por Radu Rădeanu 15.03.2014 / 10:38
28

Você sempre pode iniciar o Recovery Mode , baixar para o shell root e instalá-lo sem sudo.

    
por Vojtech Trefny 15.03.2014 / 10:37
22

Sim, a reinstalação do pacote sudo seria possível através do método chroot .

  • Primeiro inicialize a partir do disco ao vivo do Ubuntu.

  • Monte a partição do Ubuntu instalada anteriormente em qualquer diretório que você queira. No meu caso, montei-a em /media/ubuntu .

    sudo mkdir /media/ubuntu
    sudo mount /dev/sdaX /media/ubuntu   # /dev/sdaX - previously installed Ubuntu partition.
    
  • Por padrão, você não conseguiu obter conexão com a Internet depois do chroot em uma partição. Por isso, execute o comando abaixo para que funcione.

    for d in dev sys run proc; do sudo mount --bind /$d /media/ubuntu/$d ; done
    

Agradecimentos a @Oli por este código maravilhoso.

  • Agora faça um chroot nesse diretório montado,

    $ sudo chroot /media/ubuntu
    # apt-get update
    
  • Instale o pacote sudo executando,

    # apt-get install sudo
    
  • Agora saia do ambiente chrooted.

    exit
    
  • Por fim, inicialize seu sistema operacional Ubuntu. Agora teste seu comando sudo , ele certamente funcionará.

por Avinash Raj 15.03.2014 / 10:47
4

Inicialize com o parâmetro extra init=/bin/sh na linha de comando do kernel. Isto irá colocá-lo diretamente em um shell de root, de onde você pode simplesmente executar apt-get install sudo e então reiniciar. Pode ser necessário executar /etc/init.d/networking start para obter uma conexão de rede ativa primeiro. Muito mais simples do que mexer com CDs de recuperação ou discos ativos, se você me perguntar.

    
por Jules 17.03.2014 / 07:46
1

Se você já definiu ou atualizou a senha da conta de usuário root sudo passwd root , então não se preocupe com a remoção de sudo .Faça login na sua conta root e instale sudo

su
apt-get install sudo

Clique aqui para ampliar

    
por Avinash Raj 17.03.2014 / 06:10
-1

sudo (e qualquer outro privilégio de root) só se aplica ao sistema operacional em execução. Se você foi bobo e removeu o sudo (ou / usr / para essa matéria) e não tem alternativas como o pkexec, você pode simplesmente inicializar de outra coisa, copiar o software ausente e reiniciar novamente.

O acesso físico anula toda e qualquer segurança de software que seu sistema possa ter.

    
por paul 15.03.2014 / 14:33
-2

Esse problema parece ser muito específico do ubuntu. Como usuário não-ubuntu, eu nem entendi no princípio porque o sudo seria um caso especial de qualquer forma (muitas distribuições não o instalam por padrão).

Você não precisa de nenhum sudo. É apenas um atalho preguiçoso que permite que você execute um comando root sem realmente efetuar login como root. No entanto, se você tiver que fazer algo mais do que um único comando, é simplesmente horrível, prefixar tudo com o sudo. Sem mencionar que usar sudo torna os usuários ignorantes sobre como as permissões e a conta root funcionam. Faz muito mais sentido apenas fazer o login como root, fazer a administração do sistema e logout. Isso você faz com su se já estiver logado como usuário comum. Ou você poderia fazer login diretamente como root.

É claro que você precisa ter root password set, essa é a configuração razoável, senão você tem um sistema parecido com o Windows onde existem ações que ninguém pode executar e você está realmente bloqueado se de alguma forma sudo não for disponível (requer trabalhar /etc/ , definir $PATH e outras coisas montadas - o que você pode não ter se algo der errado logo no início).

    
por orion 17.03.2014 / 08:51