[10] Ustawienia „sudo”

19 maja 2020 Wyłączono przez Adam [zicherka] Nogły

Skonfigurujemy teraz SUDO, aby oddzielić możliwość wykonywania poleceń root’a między użytkownikami.

[1] Transfer przywilejów root 'a do użytkownika

[root@lsr01vm ~]# visudo

# dopisz na końcu pliku, dajemy użytkownikowi [red] prawa root'a
red     ALL=(ALL)       ALL
# składnia => cel host=(właściciel) polecenie

# sprawdźmy użytkownika [red]
[red@lsr01vm ~]$ /usr/bin/cat /etc/shadow
/usr/bin/cat: /etc/shadow: Brak dostępu # standardowy brak dostępu

[red@lsr01vm ~]$ sudo /usr/bin/cat /etc/shadow
[sudo] hasło użytkownika red: # haslo użytkownika [red]
...

...
cockpit-ws:!!:18402::::::
clevis:!!:18402:::::: # dostęp możliwy

[2] Wszystkie prawa root’a dane użytkownikowi [red] w [1] ograniczmy o jakąś komendę.

[root@lsr01vm ~]# visudo

# linia 49: dodaj
# dla przykładu użyjemy aliasu, który wywołuje komendę shutdown
Cmnd_Alias SHUTDOWN = /usr/sbin/halt, /usr/sbin/shutdown, /usr/sbin/poweroff, /usr/sbin/reboot, /usr/sbin/init, /usr/bin/systemctl

# dodaj do już istniejącego wpisu zabronione komendy wymienione w aliasie [SHUTDOWN]
red     ALL=(ALL)       ALL, !SHUTDOWN

# sprawdźmy użytkownika [red]
[red@lsr01vm ~]$ sudo /usr/sbin/reboot
[sudo] hasło użytkownika red:
Niestety użytkownik red nie ma uprawnień do uruchamiania '/usr/sbin/reboot' jako root na lsr01vm.zicher.lab. # czyli wszystko OK ;-)

[3] Transfer poleceń z prawami root’a do użytkowników w grupach.

[test@lsr01vm ~]$ sudo /usr/sbin/useradd testuser

Ufamy, że lokalny administrator udzielił odpowiedniego szkolenia.
Zwykle sprowadza się ono do tych trzech rzeczy:

    1) należy respektować prywatność innych,
    2) należy myśleć przed pisaniem,
    3) z dużą władzą wiąże się duża odpowiedzialność.

[sudo] hasło użytkownika test:
test nie występuje w pliku sudoers. Ten incydent zostanie zgłoszony. # nie można wykonać polecenia

[root@lsr01vm ~]# visudo

# linia 51: dodaj
Cmnd_Alias USERMGR = /usr/sbin/useradd, /usr/sbin/userdel, /usr/sbin/usermod, /usr/bin/passwd
# dodaj na końcu pliku
%usermgr All=(ALL) USERMGR

[root@lsr01vm ~]# groupadd usermgr
[root@lsr01vm ~]# usermod -G usermgr test

[test@lsr01vm ~]$ sudo /usr/sbin/useradd testuser
[sudo] hasło użytkownika test:
[test@lsr01vm ~]$ sudo /usr/bin/passwd testuser
Zmienianie hasła użytkownika testuser.
Nowe hasło :
Proszę ponownie wpisać nowe hasło :
passwd: zaktualizowanie wszystkich tokenów uwierzytelniania się powiodło. # czyli wszystko OK ;-)

[4] Transfer komendy/komend z przywilejami root’a do użytkownika.

[testuser@lsr01vm ~]$ sudo /usr/sbin/visudo
[sudo] hasło użytkownika testuser:
Niestety użytkownik testuser nie ma uprawnień do uruchamiania '/usr/sbin/visudo' jako root na lsr01vm.zicher.lab.

[root@lsr01vm ~]# visudo

# dodaj na końcu pliku
testuser        ALL=(ALL)       /usr/bin/visudo

# sprawdźmy czy na [testuser] to działa
testuser@lsr01vm ~]$ sudo /usr/sbin/visudo
Ufamy, że lokalny administrator udzielił odpowiedniego szkolenia.Zwykle sprowadza się ono do tych trzech rzeczy:
    1) należy respektować prywatność innych,
    2) należy myśleć przed pisaniem,
    3) z dużą władzą wiąże się duża odpowiedzialność.
[sudo] hasło użytkownika testuser:

Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
... # czyli wszystko OK ;-)

[5] Logi polecenia sudo są przechowywane w [/var/log/secure], znajduje się tam jednak ogromna ilość informacji. Dlatego, jeśli chcesz przechowywać logi polecenia sudo w innym miejscu to możesz to zrobić.

[root@lsr01vm ~]# visudo

# dodaj na końcu pliku
# dla przykładu logować będziemy do [local1]
Defaults syslog=local1

[root@lsr01vm ~]# vi /etc/rsyslog.conf

# linia 46,47: dodaj
*.info;mail.none;authpriv.none;cron.none;local1.none               /var/log/messages
local1.* /var/log/sudo.log

[root@lsr01vm ~]# systemctl restart rsyslog