O que é o sudo?
Ele é uma ferramenta que permite que o usuário comum execute um comando qualquer como root, sem efetuar login como tal. Ele é derivado do comando su, que é usado para mudar de usuário. Sua sintaxe básica é:$ sudo <comando>
O sudo oferece vários benefícios importantes:
Ele registra todos os comandos executados com ele;
Ele registra falhas de autenticação de login;
Com ele, podemos restringir que usuários o utilizarão e o que farão;
Usando o sudo, não precisaremos distribuir a senha de root para os usuários.
Su e Sudo na prática
Se estiver com usuário root, pode utilizar o su para trocar para qualquer outro usuário (não pedirá senha). Ex:
root@:# su joao
joao@:$
Caso esteja com um usuário comum, poderá utilizar o su também, mas pedirá a senha do outro usuário, claro. Um bom exemplo é, se souber a senha do root e não for sudoer, poderá usar o $ su root
Caso seu usuário comum for um sudoer (explicarei mais a frente) você poderá "se transformar" em root desta forma:
$ sudo su
Pedirá a SUA senha e você passará a utilizar o usuário root.
Em outras palavras, você usou o comando sudo (que é a ferramenta que o usuário comum pode executar qualquer coisa como root...) para trocar de usuário. Ou seja, usou o comando sudo para executar o comando su e, como não especificou nome de usuário, ele passará a ser o root.
Caso queira, por exemplo, desligar o computador pelo terminal sem fazer login como root e sendo sudoer:
$ sudo halt
Pedirá a senha de seu usuário comum e executará o halt com permissões de root.
O que é um sudoer?
Sudoer é um usuário comum que possuí algum super poder para executar super programas, ou seja, um usuário comum que pode executar programas do root ou então logar-se como root com sua própria senha.O arquivo de configuração dos sudoers, fica em: /etc/sudoers
Seu arquivos de configuração é o /etc/sudoers e deve ser editado com o comando visudo.
Exemplo do arquivo:
sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# Runas alias specification
# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL
# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h no
Pode-se ver nesse arquivo que temos alguns exemplos de configuração.
Por exemplo, se quisermos dar privilégios para o usuário joao para dar um shutdown na maquina, faríamos o seguinte:
Após a linha
root ALL=(ALL) NOPASSWD: ALL
Colocariamos a linha:
joao ALL=NOPASSWD: /sbin/shutdown
O que foi dito ai em cima, foi o seguinte:
joao -> Usuário que vai receber o privilégio
ALL -> Host em que vai ser utilizado (pode ser também como localhost)
NOPASSWD -> Sem confirmação de senha
/sbin/shutdown -> Comando de permissão
Como você deve estar imaginando, podemos adicionar os comandos que desejamos apenas alterando esta linha.
joao ALL=NOPASSWD: /sbin/shutdown,/sbin/poweroff,/sbin/mount
No Ubuntu, o primeiro usuário que é criado, tem todos os poderes de super usuário.
Isso é tudo feito via sudo. Mas como fazer para um usuário ter todos os poderes?
Este é o mais simples de todas as configurações:
joao ALL=(ALL) NOPASSWD: ALL
Esse vídeo, é simples e aborda bastante isso que falamos agora, pode ajuda-lo:
É sério não faça, vai apagar toda a estrutura da sua partição, em breve explicarei.
Comentários
Postar um comentário