Comando sudo - instalação e configuração

Quantas vezes um administrador se depara com a difícil necessidade de ceder a senha de root a algum administrador de um serviço específico, ou a um grupo de pessoas, e na fatalidade alguém com a senha de root destrói tudo. Pois é, o sudo serve para resolver este dilema.

[ Hits: 253.940 ]

Por: Ricardo Brito do Nascimento em 16/04/2007 | Blog: http://brito.blog.incolume.com.br


Configurações avançadas



Delegação de autoridade:

É aconselhável desabilitar o *"ssh hostname sudo <cmd>"*, porque executando o ssh desta maneira será apresentado a senha em claro. Em vez disto execute *"ssh -t hostname sudo <cmd>"*

Esta é a parte principal, que habilita o que o usuário pode executar e em que máquina. O arquivo /etc/sudoers pode ser compartilhado entre múltiplos sistemas para que se tenha efeito.

Sintaxe:

   user    MACHINE=COMMANDS

Seção de Comandos:

Permite ao usuário root executar qualquer comando de qualquer lugar;

   root    ALL=(ALL)     ALL

Permite aos membros do grupo 'sys' executarem todos os comandos especificados neste alias:

   %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

Permite aos membros do grupos wheel executarem todos os comandos:

   %wheel    ALL=(ALL)    ALL

Permite aos membros do grupos wheel executarem todos os comandos sem a necessidade de senhas:

   %wheel    ALL=(ALL)    NOPASSWD: ALL

Permite a todos os membros do grupo 'users' executarem os comandos mount e umount sobre o cdrom como superusuário:

   %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

Permite a todos os membros do grupo 'users' executar o comando 'shutdown':

   %users  localhost=/sbin/shutdown -h now

Permite a todos os usuários listados no alias 'ADMINS' executem comandos como superusuários sem a necessidade de senhas.

   ADMINS    ALL=(ALL)    NOPASSWD: ALL

Permite as usuários listados no alias 'ADM' executarem os comandos listados em 'STORAGE' nos host de 'FILESERVERS' sem a necessidade de senhas:

   ADM   FILESERVERS=NOPASSWD: STORAGE

Permite ao usuário 'ricardo.brito' executar os comandos kill e iptables na máquina 10.1.1.1, entretanto o comando iptables ele pode executar sem senha:

   ricardo.brito    10.1.1.1 = NOPASSWD:/bin/iptables , PASSWD: /bin/kill

Permite ao usuário 'ricardo.brito' executar o comando 'passwd' para modificar a senha dos usuários nos servidores de email 'MAILSERVERS', exceto a senha do root:

   ricardo.brito           MAILSERVERS = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

Proíbe ao usuário 'john' executar o comando 'su -', 'su - root' ou 'su root' na máquina 'penta':

   john        penta = /usr/bin/su [!-]*, !/usr/bin/su *root*

Para qualquer máquina no Host_Alias SERVERS o usuário jill pode executar qualquer comando do diretórios /usr/bin/ exceto os comandos descritos nos Cmnd_Aliases 'SU' e 'SHELLS':

   jill           SERVERS = /usr/bin/, !SU, !SHELLS

No host www, qualquer usuário do User_Alias WEBMASTERS, pode qualquer comando como usuário (www) ou apenas o 'su www'.

WEBMASTERS     www = (www) ALL, (root) /usr/bin/su www

Os usuários do grupo de rede secretaries podem gerenciar as impressoras bem como adicionar e remover usuários em todos os hosts.

+secretaries   ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

O usuário 'jen' pode executar qualquer comando, exceto nos servidores do Host_Alias SERVERS:

jen            ALL, !SERVERS = ALL

# O usuários do grupo 'users' podem executar os comandos 'STORAGE' nos hosts 'FILESERVERS':

%users FILESERVERS=STORAGE

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando o sudo
   3. Configurações avançadas
   4. Configuração das variáveis de ambiente
Outros artigos deste autor

Encapsulamento de Apache com chroot

Configurando Subversion

Gerenciando certificados A1 fornecidos pelo ICB-Brasil no navegador Chrome sobre Linux

CMS Plone 4.1.6 com invólucro Virtualenv + Buildout + Mount Point + BLOB Storage + Unicode UTF-8

Proteção utilizando fail2ban contra ataques do tipo

Leitura recomendada

Tutorial de instalação - dispositivo wireless Broadcom

Configurando o Apache para deixar dois servidores web no mesmo link

Adicionando pacotes do SuSE 9 via WEB

Configurando Servidor Web Cherokee no Centos 6.3

Instalação e configuração do fluxbox-devel

  
Comentários
[1] Comentário enviado por thelinux em 16/04/2007 - 23:32h

Parabéns. Já uso algum tempo e gostei do teu artigo.

[2] Comentário enviado por y2h4ck em 16/04/2007 - 23:37h

Uma providencia de segurança importante é adicionar um grupo especial o qual somente o mesmo tenha acesso a execução do sudo, fazendo com que a administracao de usuarios com privilegios de execucao do mesmo seja facilitada e tambem evita que o acesso seja demasiadamente permissivo.

[3] Comentário enviado por rick001_7 em 17/04/2007 - 00:17h

Sempre usei o Sudo, uma ótima forma de você poder gerenciar servidores, principalmente em grandes empresas, onde várias pessoas têm acesso ao servidor.
Utilizando o Sudo você tem o log de cada usuário e o que cada um fez, podendo verificar e analisar as ações de cada um, no caso de algum desastre causado por algum usuário na manipulação da máquina.

[4] Comentário enviado por dvj em 17/04/2007 - 10:13h

Excelente artigo, muito bem elaborado e explicado.

[5] Comentário enviado por brunokino em 17/04/2007 - 23:56h

Parabéns, Excelente Artigo, eu mesmo não conhecia esta ferramenta! muito útil e importante. Valew

[6] Comentário enviado por @ecs em 18/04/2007 - 19:58h

exelente artigo, me ajudou bastante com um probleminha que estava tendo com a configuração avançado do sudo. Parabéns.

[7] Comentário enviado por aprendiz_ce em 20/04/2007 - 12:43h

Excelente artigo!

O mesmo já foi para a "caixinha" de favoritos.

Parabéns.

[8] Comentário enviado por removido em 29/04/2007 - 03:20h

muito bom cara!! tinha configurado algumas coisas erradas aqui =]

valeu!

[9] Comentário enviado por Mithus em 29/08/2007 - 14:01h

No inicio, pensei que seria apenas uma tradução do arquivo, mas os seus comentários e exemplos foram muito bem aplicados!! Parabéns!! =)

[10] Comentário enviado por ckavila em 16/10/2007 - 15:59h

Oi... Como vai?
Li seu artigo sobre o sudo. Nele você diz que alias podem ser definidos inclusive com informaçoes do Active Directory. Eu estou usando WINBIND para logar em estações Debian utilizando conta e senha do AD. So que não consigo fazer esses usuarios terem acesso ao sudo. Será que você poderia me ajudar?

Obrigada :)

[11] Comentário enviado por luizhacker em 21/12/2007 - 12:42h

Ótimo artigo!

Ele possui uma linguagem de fácil entendimento tanto para os mais experiêntes como para os iniciantes, parabéns!

[12] Comentário enviado por valterrezendeeng em 07/01/2008 - 19:45h

Valeu teu artigo auxiliou-me

Abraços

[13] Comentário enviado por HenriqueRJ em 26/06/2008 - 10:35h

Prezados,

Eu quero que todos os administradores possam fazer tudo, exceto trocar a senha de root usando o comando "passwd root".

Que parâmetros eu devo usar??

Desde já muito obrigado!

[14] Comentário enviado por rbn_jesus em 18/08/2008 - 21:06h

HenriqueRJ
configuração avançada

Proíbe ao usuário 'john' executar o comando 'su -', 'su - root' ou 'su root' na máquina 'penta':
john penta = /usr/bin/su [!-]*, !/usr/bin/su *root*

[15] Comentário enviado por flavioc em 17/07/2009 - 22:22h

Ola, preciso de ajuda. Uso Ubuntu 9.04. O uso do Sudo aqui deu um problema. to tentando configurar um hardware, e ao aplicar as configurações da um erro. Veja abaixo:
flavio@flavio-laptop:~/wis-go7007-linux-0.9.8-3$ wd=`pwd`; sudo patch -d /etc/init.d -p0 -i "$wd"/patches/mountdevsubfs.sh-usbfs.patch
sudo: patch: command not found

como resolver? Obrigado

[16] Comentário enviado por marcospantazis em 14/05/2011 - 15:56h

Olá, Grande Henrique !
Excelente artigo, como faria para através do sudo, permitir que um usuário logue direto no ssh ?

Atenciosamente,
Marcos André

[17] Comentário enviado por rbn_jesus em 06/07/2011 - 14:12h

Olá Marcospantazis,
Eu sou o autor do artigo, e sobre a tua pergunta, O que pretende não é delegação de permissão.
O q vc pode fazer é criar um script bash, e coloca-lo como bash do usuário em questão.

ex:
### shellssh ####
ssh ${LOGNAME}@maqRemota

No arquivo /etc/passwd, altere /bin/bash, para o arquivo acima.

[18] Comentário enviado por rbn_jesus em 11/11/2011 - 10:16h

Olá a todos!!!
Informo que este artigo foi atualizado em:
http://brito.blog.incolume.com.br/2011/11/comando-sudo-instalacao-e-configuracao.html

[19] Comentário enviado por removido em 29/03/2013 - 21:03h

Simples e direto. 10.

[20] Comentário enviado por sr.machado em 15/07/2013 - 07:39h

Eu particularmente nunca usei porque a maioria do que uso é em servidores, claro que no meu pc pessoal uso, mas a frequencia é menor. Excelente artigo. Parabéns!

[21] Comentário enviado por albfneto em 31/08/2013 - 12:50h

Favoritado, sudo é sempre importante.
eu uso.

[22] Comentário enviado por wleite em 18/04/2014 - 11:04h

Parabéns pelo artigo! Esse merece nota 10!

[23] Comentário enviado por removido em 23/07/2014 - 20:14h

Excelente artigo, me salvou aqui pq havia reinstalado o sistema e o sudo não funciona quando eu tentava usar comandos como o "Installpkg"! Obrigado! :D

[24] Comentário enviado por danistation em 15/06/2015 - 16:36h

Excelente abordagem, explicativa e demonstrativa! Com uma contribuição dessas, fica difícil não se motivar em aprofundar mais no manual do sudo entre outros! Parabéns ao autor!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts