Como configurar o SUDO no Linux, desejando deixar alguns privilégios específicos a cada usuário criado no servidor. Podemos dizer que um usuário pode usar os serviços de vim, syslog, ntpdate, DHCP, etc. não inúmeras possibilidade que você pode especificar o privilégios aos usuários, até mesmo de nunca poder reiniciar o servidor ou serviço.
Instalando os serviço
root@LNXJ:~# apt install -y sudo
Lendo listas de pacotes... Pronto
Construindo árvore de dependências
Lendo informação de estado... Pronto
sudo is already the newest version (1.8.21p2-3ubuntu1.2).
0 pacotes atualizados, 0 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
root@LNXJ:~#
Adiciona permissão para os usuários sudo todos os comandos
root@LNXJ:~# visudo
#Adicione no final da linha
linuxnajanela ALL=(ALL:ALL) ALL
Teste agora o comando reboot no usuário linuxnajanela sem o sudo
linuxnajanela@LNXJ:~$ reboot
Failed to set wall message, ignoring: Interactive authentication required.
Failed to reboot system via logind: Interactive authentication required.
Failed to open /dev/initctl: Permission denied
Failed to talk to init daemon.
Realmente tem que negar porque não digitou o comando sudo antes do comando reboot, vamos agora testar o reboot e vai funcionar digitando a senha. Não precisa testar eu fiz no vídeo.
Vamos agora adicionar uns comando em alias na configuração do sudo para não serem permitidos pelo usuário especifico.
root@LNXJ:~# visudo
#Adicione no final da linha
linuxnajanela ALL=(ALL:ALL) ALL, !DESLIGAR
Cmnd_Alias DESLIGAR = /sbin/halt, /sbin/shutdown, /sbin/poweroff, /sbin/reboot, /sbin/init, /bin/systemctl
Vamos testar com o comando shutdown -fr now, no usuário que foi dado a negação(linuxnajanela).
linuxnajanela@LNXJ:~$ sudo shutdown -fr now
Sinto muito, usuário linuxnajanela não tem permissão para executar "/sbin/shutdown -fr now" como root em LNXJ.
linuxnajanela@LNXJ:~$
Vamos agora trabalhar em Grupo, o grupo de nome usersadmin será criado para controle dos comandos, e o usuário linuxnajanela será adicionado ao grupo.
root@LNXJ:/home/linuxnajanela# visudo
#adicionar abaixo do comando alias DESLIGAR que foi criado
Cmnd_Alias USERADMIN = /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, /usr/sbin/deluser, /usr/sbin/userdel, /usr/bin/passwd
#adicione abaixo o grupo que irá usar essa permissão.
%useradmin ALL=(ALL) USERADMIN
Vamos agora criar o Grupo USERADMIN e inserir o usuário linuxnajanela no grupo e verificar os comandos:
root@LNXJ:/home/linuxnajanela# groupadd useradmin
root@LNXJ:/home/linuxnajanela# usermod -G sudo,useradmin linuxnajanela
root@LNXJ:/home/linuxnajanela# groups linuxnajanela
linuxnajanela : linuxnajanela sudo useradmin
root@LNXJ:/home/linuxnajanela# exit
linuxnajanela@LNXJ:~$ sudo adduser testeuser
Adicionando o usuário `testeuser' ...
Adicionando novo grupo 'testeuser' (1002) ...
Adicionando novo usuário `testeuser' (1001) ao grupo `testeuser' ...
Criando diretório pessoal `/home/testeuser' ...
Copiando arquivos de '/etc/skel' ...
Digite a nova senha UNIX:
Redigite a nova senha UNIX:
passwd: password updated successfully
Changing the user information for testeuser
Enter the new value, or press ENTER for the default
Full Name []: Teste
Room Number []:
Work Phone []:
Home Phone []:
Other []:
A informação está correta? [S/n] s
linuxnajanela@LNXJ:~$ sudo /usr/bin/passwd testeuser
Digite a nova senha UNIX:
Redigite a nova senha UNIX:
passwd: password updated successfully
Funcionou perfeitamente, vamos trabalhar com três usuário: Kelsey, Linux e Windows. Para testar as permissões.
root@LNXJ:/home/linuxnajanela# visudo
#adiciona no final as permissões de cada usuário independente.
kelsey ALL=(ALL:ALL) /usr/sbin/visudo
linux ALL=(ALL:ALL) /usr/sbin/adduser, /usr/sbin/useradd, /usr/sbin/newusers, /usr/sbin/deluser, /usr/sbin/deluser, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd
windows ALL=(ALL:ALL) /usr/bin/vim
Pronto, agora vamos testar:
kelsey@LNXJ:~$ sudo /usr/sbin/visudo
[sudo] senha para kelsey:
linux@LNXJ:~$ sudo userdel -r kelsey
[sudo] senha para linux:
windows@LNXJ:~$ sudo vim /root/.vimrc
[sudo] senha para windows:
O Bom é ter o log de todas as atividades que os usuários fazem, então vamos adicionar o que todos fazer no rsyslog.
root@LNXJ:~# visudo
#adiciona no final
Defaults syslog=local1
Editar o arquivo do Syslog
root@LNXJ:~# vi +8 /etc/rsyslog.d/50-default.conf
#na linha 8 faça a alteração.
local1.* /var/log/sudo.log
auth,authpriv.*;local1.none /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
root@LNXJ:~# systemctl restart rsyslog
Verifique o log:
root@LNXJ:~# cat /var/log/sudo.log
Mar 11 23:21:33 LNXJ sudo: linux : TTY=pts/0 ; PWD=/home/linux ; USER=root ; COMMAND=/usr/bin/passwd windows
Mar 11 23:48:49 LNXJ sudo: kelsey : TTY=pts/0 ; PWD=/home/kelsey ; USER=root ; COMMAND=/usr/sbin/visudo
Mar 11 23:50:11 LNXJ sudo: linux : TTY=pts/0 ; PWD=/home/linux ; USER=root ; COMMAND=/usr/sbin/userdel -r kelsey
Mar 11 23:50:59 LNXJ sudo: windows : TTY=pts/0 ; PWD=/home/windows ; USER=root ; COMMAND=/usr/bin/vim /root/.vimrc
root@LNXJ:~#
Comentários
Postar um comentário