W jaki sposób mogę wyświetlić listę użytkowników posiadających uprawnienia roota (a jeszcze lepiej wszystkich użytkowników wraz z tym, czy mają uprawnienia roota, czy nie)?
W jaki sposób mogę wyświetlić listę użytkowników posiadających uprawnienia roota (a jeszcze lepiej wszystkich użytkowników wraz z tym, czy mają uprawnienia roota, czy nie)?
Odpowiedzi:
Nie zapomnij zmienić hasła roota. Jeśli jakikolwiek użytkownik ma UID 0 poza rootem, nie powinien. Kiepski pomysł. Sprawdzić:
grep 'x:0:' /etc/passwd
Ponownie, nie powinieneś tego robić, ale aby sprawdzić, czy użytkownik jest członkiem grupy głównej:
grep root /etc/group
Aby sprawdzić, czy ktokolwiek może wykonywać polecenia jako root, sprawdź sudoers:
cat /etc/sudoers
Aby sprawdzić bit SUID, który umożliwia wykonywanie programów z uprawnieniami administratora:
find / -perm -04000
grep '[^:]*:[^:]*:0:' /etc/passwd
. +1 w szczególności za sprawdzenie SUID.
Aby zobaczyć, kto jest UID 0:
getent passwd 0
Aby zobaczyć, kto jest w grupach root
, wheel
adm
i admin
:
getent group root wheel adm admin
Aby wyświetlić listę wszystkich użytkowników i grup, których są członkami:
getent passwd | cut -d : -f 1 | xargs groups
getent passwd
zamiast tego, jest właściwie poprawna. Tylko nie zapomnij sprawdzić / etc / sudoers.
Czysty root to identyfikator użytkownika „0”.
Wszyscy użytkownicy w systemie znajdują się w pliku / etc / passwd:
less /etc/passwd
Użytkownicy root mają „0” jako identyfikator użytkownika, czyli trzecią kolumnę. Osoby z „0” jako grupą (4. kolumna) mogą również mieć pewne uprawnienia root.
Następnie przyjrzyj się grupom i zobacz, kto jest dodatkowym członkiem grup „root”, „wheel” lub „admin”:
less /etc/group
Użytkownicy znajdujący się w tych grupach mogą mieć uprawnienia administratora, szczególnie za pomocą polecenia „sudo”.
Ostatnią rzeczą, którą chcesz sprawdzić, jest konfiguracja „sudo” i sprawdzenie, kto ma uprawnienia do uruchomienia tego polecenia. Sam plik jest dobrze udokumentowany, więc nie będę go tutaj kopiować:
less /etc/sudoers
Obejmuje to główne obszary, które mogą mieć dostęp do roota.
consolehelper
i PackageKit
.)
getent passwd
Powinien jednak wyświetlać listę wszystkich użytkowników systemu (w tym root), w formacie passwd, niezależnie od bazy danych, w której są zdefiniowani.
Aby wydrukować wszystkich użytkowników
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
Aby wydrukować tylko tych użytkowników z identyfikatorem UID 0, ponieważ, jak powiedzieli inni, użytkownicy z niejawnymi uprawnieniami roota:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwd
zamiast tego. getent passwd | perl -naF: -e 'print "$F[0]\n"'
Aby uzyskać szybką listę wszystkich użytkowników, spróbuj dwukrotnie nacisnąć klawisz Tab (w celu autouzupełniania) po wpisaniu passwd
polecenia, a następnie spacji. Działa to również z su
poleceniem.
Należy to zrobić jako użytkownik root.