De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Configuração básica do sudo
Colaboração: Lincoln Zuljewic Silva
Data de Publicação: 15 de Junho de 2009
Eu estava dando uma olhada no histórico da dicas-l e não achei nenhum
artigo que explique facilmente a utilização/configuração do comando sudo
,
então resolvi escrever este aproveitando que tive que configurar o sudo
em
alguns servidores aqui na empresa.
Para quem não sabe, o sudo
é um comando que permite um usuário executar um
comando como se ele fosse outro usuário. Para ficar fácil, vamos supor que
o nosso sistema tem os seguintes usuários: root, fulano e cicrano.
Por questões de segurança, o ideal é não logar diretamente como root, e sim
como um usuário comum e executar ou o comando su
ou o comand sudo
.
O sudo
pode servir para que o usuário fulano execute algum comando como
usuário cicrano, ou ainda, pode servidor para que o usuário cicrano execute
algum comando como usuário root.
O sudo
tem somente um arquivo de configuração, o /etc/sudoers
que pode ser editado de duas formas, a primeira utilizando o seu editor de
texto preferido (vi por exemplo) e a segunda forma é utilizando o comando
visudo
, que na verdade parece executar um vi sudo
, só que além disto,
o visudo
previne que mais de uma pessoa edite o sudores simultaneamente
e contêm algumas rotinas de verificação de sintaxe do arquivo. Então para
editar o sudoers, utilize SEMPRE o visudo
.
Digamos então que você quer permitir que o usuário cicrano execute o comando
id como root, coloque a seguinte linha no sudoers:
cicrano ALL = (root) NOPASSWD: /usr/bin/id
Explicando as colunas:
- Coluna 1: o usuário ou grupo (no caso de grupo, coloque um % antes,
exemplo %financeiro) que você irá atribuir os direitos.
- Coluna 2: em que servidor (ALL) e com qual usuário o comando será executado
((root))
- Coluna 3:especifica que o comando /usr/bin/id será executado sem que a
senha do usuário de destino seja perguntada (NOPASSWD: /usr/bin/id).
Com isso, podemos testar:
cicrano@server:~> sudo -l
User cicrano may run the following commands on this host:
(ALL) ALL
(root) NOPASSWD: /usr/bin/id
cicrano@server:~> sudo /usr/bin/id
uid=0(root) gid=0(root) groups=0(root)
O commando sudo -l
irá listar todos comandos que podem ser executados
e logo depois executamos o id com o sudo
. Repare que o comando retornou
o usuário root .
O sudo
tem mais algumas opções interessantes, porém este é o seu funcionamento
básico.
Lincoln Zuljewic Silva trabalha com Linux desde 1999. É administrador de sistemas e mantem o blog www.system.adm.br