Seção 1.8 - Configurando o Sudo

Conteúdo

Objetivo: Configurar o Sudo para separar as funções dos usuários se algumas pessoas compartilharem privilégios.

[1] Instale o Sudo.

				
					root@localhost:~# apt -y install sudo

				
			

[2] Transfira o privilégio de root para um usuário.

				
					root@localhost:~# visudo
# adicione ao final: usuário [nathaniel] pode usar todos os privilégios de root
# como escrever ⇒ host de destino=(dono) comando
nathaniel    ALL=(ALL:ALL) ALL

# pressione [Ctrl + x] para sair do visudo
# verifique com o usuário [nathaniel]
nathaniel@localhost:~$ cat /etc/shadow
cat: /etc/shadow: Permissão negada
# negado

nathaniel@localhost:~$ sudo cat /etc/shadow
[sudo] senha para nathaniel:   # senha do nathaniel
root:xxxxxxxxxx:19520:0:99999:7:::
daemon:*:19520:0:99999:7:::
bin:*:19520:0:99999:7:::
sys:*:19520:0:99999:7:::
sync:*:19520:0:99999:7:::
.....
.....
# possível executar
				
			

[3] Além da configuração [1], defina que alguns comandos não são permitidos.

				
					root@localhost:~# visudo
# adicione alias para o tipo de comandos de desligamento
# Especificação de alias do comando
Cmnd_Alias SHUTDOWN = /usr/sbin/halt, /usr/sbin/shutdown, \
/usr/sbin/poweroff, /usr/sbin/reboot, /usr/sbin/init, /usr/bin/systemctl 

# adicione (comandos no alias [SHUTDOWN] não são permitidos)
nathaniel    ALL=(ALL:ALL) ALL, !SHUTDOWN

# verifique com o usuário [nathaniel]
nathaniel@localhost:~$ sudo /usr/sbin/reboot
[sudo] senha para nathaniel:
Desculpe, o usuário nathaniel não tem permissão para executar '/usr/sbin/reboot' como root em localhost.
# negado como configurado
				
			

[4] Transfira alguns comandos com privilégios de root para usuários em um grupo.

				
					root@localhost:~# visudo
# adicione alias para o tipo de comandos de gerenciamento de usuário
# Especificação de alias do comando
Cmnd_Alias USERMGR = /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \
/usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd

# adicione ao final
%usermgr   ALL=(ALL:ALL) USERMGR

root@localhost:~# groupadd usermgr
root@localhost:~# usermod -aG usermgr nathaniel
# verifique com o usuário [nathaniel]
nathaniel@localhost:~$ sudo /usr/sbin/useradd testuser
nathaniel@localhost:~$
nathaniel@localhost:~$ sudo /usr/bin/passwd testuser
Digite a nova senha UNIX:
Digite a nova senha UNIX novamente:
senha do passwd atualizada com sucesso
# possível executar
				
			

[5] Transfira alguns comandos específicos com privilégios de root para um usuário.

				
					root@localhost:~# visudo
# adicione ao final: defina comandos específicos para cada usuário
fedora   ALL=(ALL:ALL) /usr/sbin/visudo
debian   ALL=(ALL:ALL) /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, \
                       /usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd
ubuntu   ALL=(ALL:ALL) /usr/bin/vim

# verifique com o usuário [fedora]
fedora@localhost:~$ sudo /usr/sbin/visudo
# possível abrir e editar
## O Sudoers permite que determinados usuários executem vários comandos como
## o usuário root, sem precisar da senha de root.
##
# verifique com o usuário [debian]
debian@localhost:~$ sudo /usr/sbin/userdel -r testuser
debian@localhost:~$     # possível executar
# verifique com o usuário [ubuntu]
ubuntu@localhost:~$ sudo /usr/bin/vim /root/.profile
# possível abrir e editar
## ~/.profile: executado por shells de login compatíveis com Bourne.
				
			

[6] É possível exibir os logs do Sudo no Journald conforme abaixo.

				
					root@localhost:~# journalctl -t sudo
Jun 14 00:03:05 debian sudo[1656]: nathaniel : TTY=ttyS0 ; PWD=/home/nathaniel ; USER=root ; COMMAND=/usr/bin/cat /etc/shadow
Jun 14 00:03:05 debian sudo[1656]: pam_unix(sudo:session): session opened for user root(uid=0) by root(uid=1001)
Jun 14 00:03:05 debian sudo[1656]: pam_unix(sudo:session): session closed for user root
Jun 14 00:09:41 debian sudo[1687]: nathaniel : TTY=ttyS0 ; PWD=/home/nathaniel ; USER=root ; COMMAND=/usr/bin/ls -l /root
Jun 14 00:09:41 debian sudo[1687]: pam_unix(sudo:session): session opened for user root(uid=0) by root(uid=1001)
Jun 14 00:09:41 debian sudo[1687]: pam_unix(sudo:session): session closed for user root
				
			
Print Friendly, PDF & Email