Utilizando o SUDO para desligar ou reiniciar um PC logado com um usuário comum

Publicado por Antônio da Costa Nóbrega Neto em 08/12/2004

[ Hits: 22.780 ]

 


Utilizando o SUDO para desligar ou reiniciar um PC logado com um usuário comum



O comando "sudo" (SUperuser DO) fornece à um usuário comum permissão de execução para comandos restritos ao usuário root. Dessa forma torna-se possível, por exemplo, desligar ou reiniciar o computador sem a necessidade de se logar como root.

Isso pode ser extremamente útil se o sistema em questão utiliza um conjunto gráfico básico de aplicações, onde o XDM é o gerenciador de desktops, o Fluxbox é o desktop instalado e o usuário não deseja implementar os botões de "Desligar" e "Reiniciar" no XDM, mas sim uma simples opção de "Desligar" e "Reiniciar" no menu do Fluxbox.

Requisitos


Comando necessário:
  • /usr/bin/sudo (*)

Respectivo arquivo de configuração:
  • /etc/sudoers (*)

Comando (não obrigatório) que pode ser utilizado para edição do arquivo sudoers:
  • /usr/sbin/visudo (*)

(*) localizações referentes ao Slackware 9.1

Especificando as permissões no arquivo sudoers


1. Efetue logon como root ou "su root".

2. Digite o comando "visudo" ou "vi /etc/sudoers" (pode ser utilizado outro editor no lugar do vi).

3. Insira em algum lugar do arquivo a seguinte linha:

usuario host = NOPASSWD: /sbin/shutdown

Onde:
  • usuário = o usuário que terá permissão para executar o comando.
  • host = o nome do host do computador onde o comando se encontra.
  • NOPASSWD: = evita que o usuário tenha que confirmar sua própria senha ao executar o comando através do sudo.
  • /sbin/shutdown = localização do comando.

4. Salve o arquivo.

Executando


1. Efetue logon como usuário comum.

2. Digite uma das seguintes linhas de comando no prompt para executar sua respectiva função:

$ sudo /sbin/shutdown -h now (para desligar o PC)

$ sudo /sbin/shutdown -r now (para desligar o PC)

Inserindo as opções no Fluxbox


1. Edite o arquivo ~/.fluxbox/menu.

2. Insira os ítens:

[exec] (Desligar o Computador) {sudo /sbin/shutdown -h now}

[exec] (Reiniciar o Computador) {sudo /sbin/shutdown -r now}

Observações:

1. Para que o sudo funcione, ao entrar com a linha de comando, o usuário deve especificar o caminho EXATO que foi definido no arquivo sudoers.

Correto: sudo /sbin/shutdown (opções)

Incorreto: sudo shutdown (opções)

2. Da mesma forma como foi descrito acima, podem ser estabelecidas permissões a outros comandos de uso restrito ao usuário administrador (root), no entanto, vale lembrar que isso implicaria em um sistema menos seguro e mais vulnerável a ataques externos.

Para mais informações e opções, consulte as páginas "man" do sudo e sudoers.

Outras dicas deste autor

Configurando o GAIM para MSN Messenger no Slackware 10.2

Leitura recomendada

Log online do sistema

Awk - Uma poderosa ferramenta de análise

Como copiar e colar rapidamente no terminal

Transferência de Arquivos - Fish ou SCP

Descompilando programas

  

Comentários
[1] Comentário enviado por acnnx em 23/03/2006 - 23:15h

Observações:

Observação 1: no campo 'Especificando as permissões no arquivo sudoers', o item 2 faz referência à edição do arquivo '/etc/sudoers', mas este arquivo deve estar com as permissões de usuário e grupo setadas para apenas leitura, logo, para poder modificar seu conteúdo deve-se antes alterar a permissão de usuário ( no caso o root ) para escrita ( # chmod 640 /etc/sudoers ), ou simplesmente utilizar o comando 'visudo'. Se a opção escolhida for o comando 'visudo', as alterações só entrarão em vigor após fechar o arquivo ( não adianta apenas salvá-lo ).

Observação 2: no campo 'Executando', a opção '$ sudo /sbin/shutdown -r now' reinicia o PC.

[2] Comentário enviado por gpr.ppg.br em 07/07/2006 - 16:37h

que coisa... achei o fluxbox bem melhor que o kde +
nao inicia os programas que tao no kde.

por exemplo o msn SIM nao abriu.
e o x0rfbserver que eu uso pra controlar o linux nao abriu ;-(

o que faço? alguem sabe?

aqui aocntece isso:

root@kurumin:/home/kurumin# x0rfbserver
Xlib: connection to ":0.0" refused by server
Xlib: Invalid MIT-MAGIC-COOKIE-1 key
Fatal error: Can't open display ":0.0"

root@kurumin:/home/kurumin#

so finciona indo em menu KDE ->
configura ->
rodar programa como root

dai abriu o x0rfbserver.

[3] Comentário enviado por acnnx em 07/07/2006 - 17:46h

Aparentemente, seu problema está na configuração do arquivo 'xorg.conf' ou 'XFree86.conf', dependendo de qual deles sua distro, que parece ser Kurumin, utiliza. O trecho que vc faz menção ' ...Fatal error: Can't open display ":0.0" ' significa que suas configurações de video não estão sendo suportadas. Isso pode estar acontecendo por causa de uma configuração de frequência vertical ( Hz ) ou horizontal ( KHz ) incompatível com a do seu monitor, ou mesmo por causa de seu driver de video estar sendo definido incorretamente nos aquivos citados acima. Mas vc diz que no KDE tudo está normal, então a única explicação lógica que encontro pra isso é o fato do KDE 'tentar' múltiplas configurações, até achar a compatível com seu sistema, coisa que o Fluxbox não faz. Ou seja, minha sugestão é que vc tente configurar o arquivo citado acima correspondente a sua distribuição e verifique se os valores definidos nas seções 'Monitor section', 'Graphics device section' e 'Screen sections' estão correspondentes ao seu sistema.

[4] Comentário enviado por gpr.ppg.br em 09/07/2006 - 13:26h

ok valeu.

[5] Comentário enviado por cleitão em 30/11/2006 - 18:36h

Cara bem legal essa dica estava precisando disso mesmo!!!!!!

[6] Comentário enviado por acnnx em 01/12/2006 - 01:03h

Jóia! ;-)

[7] Comentário enviado por xerxeslins em 13/11/2007 - 12:27h

deu erro de syntax no meu e eu ja refiz varias vezes...

no arquivo sudoers eu coloquei o seguinte

xxl wood = NOPASSWORD: /sbin/shutdown -r now

salvei e depois fui no terminal e fiz como usuario xxl@wood :

"shutdown /sbin/shutdown -r now"

aparece sudoers file : syntax error, line 30

meu slack eh 12.0

sera por isso?

[8] Comentário enviado por acnnx em 14/11/2007 - 07:23h

Vc fez as configurações no arquivo 'sudoers' corretamente, o detalhe que está incorreto é a linha de comando executada no terminal. Ela deve indicar o caminho completo do comando definido no arquivo 'sudoers', precedido do comando 'sudo'.

Exemplo:

sudo /sbin/shutdown -r now



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts