Antes de mais nada, eu não repito, NÃO tente fazer com que seu usuário tenha privilégios de root em todos os momentos, que é a mãe de todos os riscos de segurança e não é apenas desnecessário, mas pedindo por problemas.
De qualquer forma, se você quiser que seu usuário possa executar um comando específico, você precisa adicionar esta linha a sudoers
(altere terdon
para seu nome de usuário, é claro):
terdon ALL=NOPASSWD:/sbin/reboot
Você pode, então, executá-lo com sudo reboot
sem digitar uma senha . Você sempre precisará executá-lo com sudo
, mas o melhor que você pode obter é passwordless sudo
para determinados comandos.
Isso é devido ao modo como o sistema funciona. Quando você tenta executar, por exemplo, shutdown -r
, como um usuário normal, você recebe esta mensagem:
$ shutdown -r
shutdown: you must be root to do that!
Isso não tem nada a ver com sudo
, o comando em questão simplesmente verifica se o seu userid é 1 (o superusuário) e, se não for, não permitirá que você o execute. Você poderia configurar seu sistema para ter outro usuário como usuário1, mas isso simplesmente mudaria o nome de usuário de root
e seria um grande problema sem nenhuma razão (e não o ajudaria a fazer o que você estão tentando de qualquer maneira).
Portanto, a menos que você esteja realmente logado como o usuário cujo userid é 1, você sempre terá que usar sudo
para executar comandos privilegiados. A única solução seria criar um alias (ou uma função ou um script) para reboot
no arquivo de configuração de shells ( ~/.bashrc
, por exemplo):
alias reboot='sudo shutdown -r now'
Dessa forma, como você já definiu shutdown
como sem senha em /etc/sudoers
, será possível executar
$ reboot
e obtenha o resultado desejado.