`sudo reboot` vs` reboot` - qual é a diferença?

60

Recentemente, descobri que rebootfunciona tão bem quanto sudo reboot, pelo que posso dizer. No entanto, em muitos casos, vejo pessoas dizendo para sudo reboot. Por que é isso? Eles são iguais e apenas preferências pessoais? Ou eles são diferentes? Faz sudo rebootmais do que reboot?

Zeke Egherman
fonte
11
Reiniciar o sistema pelo usuário comum nem parece lógico. A alteração do nível de execução do processo raiz (init) deve ser possível pela raiz e apenas pelo usuário raiz. Você não pode acessar os atalhos do sistema de arquivos do sysrq por nenhum outro usuário. MAS ! Você pode reiniciar o linux por sysrq chaves , ele não requer sudo:)
Svetlana Linuxenko
sudoé a abreviação de "Superusuário Do". Não tem efeito sobre o próprio comando (este ser reboot), apenas faz com que seja executado como superusuário, e não como você. É usado para fazer coisas que de outra forma você não teria permissão para fazer, mas não altera o que é feito. Se você já tem permissão para executar reboot, tudo bem, basta executar reboot.
Lee Crocker
Tradicionalmente, isso precisa de raiz. Velhos hábitos quebram com força.
Thorbjørn Ravn Andersen
6
@SvetlanaLinuxenko> Reiniciar o sistema pelo usuário comum nem parece lógico O usuário que está sentado no console pode simplesmente pressionar o botão liga / desliga ou puxar o plugue se não permitirmos que ele reinicie corretamente.
Kaz
Muitas outras distribuições não permitirão que você reinicie se você não for root.
user253751

Respostas:

113

No Ubuntu 14.10 e mais antigo, sudoé necessário.

A introdução do Systemd no 15.04 mudou a maneira como o Ubuntu lida shutdowne reboot:

  1. Quando um único usuário está logado, sudonão é necessário. Quando mais de um usuário estiver logado, sudoserá necessário.

  2. Aplicações podem inibir shutdowne reboot. Você substitui essas inibições por sudo.

  3. Um único usuário conectado via sshainda requer sudo.

user535733
fonte
Eu acho que isso inclui um único usuário logado várias vezes também.
Mckenzm
6
Não tem nada a ver com o número de usuários conectados. A capacidade de reiniciar sem usar sudodepende de estar no console da máquina. Se você conectar um computador a uma máquina, ainda não poderá reiniciá-la sem sudo, mesmo se você for o único usuário conectado. Por outro lado, se você estiver no console, ainda poderá reiniciá-la sem sudoque outros usuários estejam. conectado remotamente.
Dave Sherohman
11
@DaveSherohman: Isso não é necessariamente verdade - o systemd ainda usa ações separadas do polkit, dependendo se você é a única pessoa logada ou se há várias. Ou seja, a distribuição (ou o administrador de sistemas) poderia muito facilmente fazê-los se comportar de maneira diferente.
grawity
21

Na minha máquina 14.04, quando eu (como usuário normal) digito reboot, recebo

reboot: Need to be root

Essa é a diferença.

Como Terrance apontou nos comentários, ele funciona de maneira diferente em sistemas posteriores aos meus. Portanto, provavelmente você está vendo antigos escritores e / ou usuários (como eu) acostumados a digitar sudo reboot!

Mármore orgânico
fonte
Interessante! O que estou me perguntando agora é se algo mudou entre 14.04 e 17.10 para fazer com que você não precise ser raiz reboot, ou se há outros fatores em jogo no meu sistema alterando isso.
Zeke Egherman
3
@ ZekeEgherman Na verdade, acho que a diferença aconteceu quando eles mudaram de Upstart para Systemd para os comandos. Quando olho para o meu comando de reinicialização, ele aponta como um link para /bin/systemctl. Você pode verificar o seu digitando ls -al $(which reboot).
Terrance
@terrance, também vejo o link para /bin/systemct1qual versão você é?
Zeke Egherman
Isso é interessante! Eu apenas tentei na minha máquina virtual de pré-lançamento 18.04 e funciona como você diz. @ Terrance, acho que você deve escrever a resposta real.
Organic Marble
@ZekeEgherman 16.04. O Ubuntu mudou para o Systemd em 15.04. Portanto, 14.04 ainda seria Upstart então ou initd, se é assim que você deseja chamá-lo.
Terrance
8

sudo rebooté usado em tutoriais / how-tos para compatibilidade motivos

Embora reboot possa funcionar

  • se você é root ou
  • se você estiver em um host com systemd e
  • se nenhum aplicativo estiver bloqueando uma reinicialização

sudo reboot" sempre " * funcionará, independentemente da

  • se você é root
  • se há outros usuários conectados
  • se existem aplicativos bloqueando
  • se init é systemd, System V, Upstart, qualquer que seja

* Bem, certamente tentará - menos que alguns processos do kernel estejam bloqueando / se comportando mal, deve funcionar.

Robert Riedl
fonte
Sempre funcionará * se o sudo estiver instalado.
Ave
7

Para mim, muitas vezes, se eu digitar reboot, não me deixará devido a inibidores do Chrome ao assistir ao YouTube e outras guias abertas. Então sou forçado a usar sudo reboot- um martelo maior.

Isso no Ubuntu 16.04

WinEunuuchs2Unix
fonte
4

Obrigado pela discussão, fico feliz em entender isso agora!

Como Terrance mencionou, na versão 15.04, eles trocaram de Upstart para Systemd para os comandos. Essa alteração significa que rebootnão requer mais privilégios de root.

Quanto ao motivo pelo qual a comunidade * nix instrui sudo reboot, existem algumas razões possíveis:

  • Hábito - As pessoas estavam tão acostumadas a ter que sudo rebootreiniciar, continuam a fazê-lo, apesar de não ser necessário
  • Usuários não atualizados - As pessoas que sudo rebootestão instruindo estão nas versões do Ubuntu inferiores a 15.04 ou em outras distros que usam o Upstart para comandos.

  • Compatibilidade - É o que parece mais plausível para mim: as pessoas estão instruindo, sudo rebootporque é garantido que ele será reiniciado em todos os sistemas * nix, não importa o quê.

Nota adicional: a partir user535733 's resposta :

A introdução do systemd no 15.04 mudou a maneira como o Ubuntu lida com o desligamento e a reinicialização:

  1. Quando um único usuário está logado, sudonão é necessário. Quando mais de um usuário está conectado, sudoé necessário.

  2. Os aplicativos podem inibir o desligamento e a reinicialização. Você substitui essas inibições por sudo.

Zeke Egherman
fonte