Pada kotak linux, bagaimana cara mendaftar semua pengguna yang memiliki hak root (dan bahkan lebih baik, semua pengguna secara umum bersama dengan apakah mereka memiliki root atau tidak)?
Pada kotak linux, bagaimana cara mendaftar semua pengguna yang memiliki hak root (dan bahkan lebih baik, semua pengguna secara umum bersama dengan apakah mereka memiliki root atau tidak)?
Jawaban:
Jangan lupa untuk mengubah kata sandi root. Jika ada pengguna yang memiliki UID 0 selain root, mereka seharusnya tidak. Ide buruk. Untuk memeriksa:
grep 'x:0:' /etc/passwd
Sekali lagi, Anda tidak harus melakukan ini tetapi untuk memeriksa apakah pengguna adalah anggota dari grup root:
grep root /etc/group
Untuk melihat apakah ada yang bisa menjalankan perintah sebagai root, periksa sudoers:
cat /etc/sudoers
Untuk memeriksa bit SUID, yang memungkinkan program dijalankan dengan hak akses root:
find / -perm -04000
grep '[^:]*:[^:]*:0:' /etc/passwd
. +1 secara khusus untuk memeriksa SUID.
Untuk melihat siapa yang UID 0:
getent passwd 0
Untuk melihat siapa yang ada dalam kelompok root
, wheel
adm
dan admin
:
getent group root wheel adm admin
Untuk membuat daftar semua pengguna dan grup mereka adalah anggota:
getent passwd | cut -d : -f 1 | xargs groups
getent passwd
sebaliknya, sebenarnya benar. Jangan lupa untuk memeriksa / etc / sudoers.
Root murni adalah id pengguna "0".
Semua pengguna dalam sistem berada di file / etc / passwd:
less /etc/passwd
Mereka yang root memiliki "0" sebagai id pengguna, yang merupakan kolom ke-3. Yang dengan "0" sebagai grup (kolom ke-4) mungkin juga memiliki beberapa hak root.
Selanjutnya, Anda akan ingin melihat grup, dan melihat siapa yang merupakan anggota tambahan dari grup "root" atau "wheel" atau "admin":
less /etc/group
Pengguna yang terdaftar dalam grup tersebut dapat memiliki beberapa hak akses root, terutama melalui perintah "sudo".
Hal terakhir yang ingin Anda periksa adalah konfigurasi "sudo" dan lihat siapa yang terdaftar memiliki otorisasi untuk menjalankan perintah ini. File ini sendiri didokumentasikan dengan baik sehingga saya tidak akan mereproduksi di sini:
less /etc/sudoers
Itu mencakup area utama yang bisa memiliki akses root.
consolehelper
dan PackageKit
.)
getent passwd
harus mencantumkan semua pengguna sistem (termasuk root), dalam format passwd, terlepas dari basis data di mana mereka didefinisikan.
Untuk mencetak semua pengguna
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
Untuk mencetak hanya pengguna dengan UID 0, seperti yang dikatakan orang lain, pengguna dengan hak akses root implisit:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwd
sebagai gantinya. Untuk contoh "cetak semua pengguna" pertama Anda, coba ini:getent passwd | perl -naF: -e 'print "$F[0]\n"'
Untuk daftar cepat semua pengguna, coba tekan tab dua kali (untuk melengkapi otomatis) setelah mengetik passwd
perintah yang diikuti oleh spasi. Ini berfungsi dengan su
perintah juga.
Harus dilakukan sebagai pengguna root-privilege.