Linux kutusunda, kök ayrıcalıklarına sahip tüm kullanıcıları (ve hatta daha iyisi, genel olarak kökleri olup olmadığına bakılmaksızın) nasıl listeleyebilirim?
Linux kutusunda, kök ayrıcalıklarına sahip tüm kullanıcıları (ve hatta daha iyisi, genel olarak kökleri olup olmadığına bakılmaksızın) nasıl listeleyebilirim?
Yanıtlar:
Kök şifresini değiştirmeyi unutma. Herhangi bir kullanıcının root dışında UID 0 varsa, yapmaması gerekir. Kötü bir fikir. Kontrol etmek:
grep 'x:0:' /etc/passwd
Yine, bunu yapmamalısınız, ancak kullanıcının kök grubun bir üyesi olup olmadığını kontrol etmek için:
grep root /etc/group
Herhangi birisinin root olarak komut çalıştırıp çalıştıramayacağını görmek için sudoer'ları kontrol edin:
cat /etc/sudoers
Programların kök ayrıcalıklarıyla yürütülmesine izin veren SUID bitini denetlemek için:
find / -perm -04000
grep '[^:]*:[^:]*:0:' /etc/passwd
. SUID kontrolü için özellikle +1.
UID 0 olduğunu görmek için:
getent passwd 0
Görmek için kimin gruplar halinde ise root
, wheel
adm
ve admin
:
getent group root wheel adm admin
Tüm kullanıcıları ve üye oldukları grupları listelemek için:
getent passwd | cut -d : -f 1 | xargs groups
getent passwd
bunun yerine bu gerçekten doğrudur. Sadece / etc / sudoers 'ı kontrol etmeyi unutma.
Saf kök kullanıcı kimliği "0" dır.
Sistemdeki tüm kullanıcılar / etc / passwd dosyasındadır:
less /etc/passwd
Kök olanlar, 3. sütun olan kullanıcı kimliği olarak "0" değerine sahiptir. Grup olarak "0" 'a sahip olanlar (4. sütun) ayrıca bazı kök haklarına sahip olabilir.
Ardından, gruplara bakmak ve "root" veya "wheel" veya "admin" gruplarının kimlerden birinin üyesi olduğunu görmek istersiniz:
less /etc/group
Bu gruplarda listelenen kullanıcılar, özellikle "sudo" komutu ile bazı kök ayrıcalıklarına sahip olabilirler.
Kontrol etmek isteyeceğiniz son şey "sudo" config ve bu komutu çalıştırma yetkisi olan kişilerin listelendiğini görün. Bu dosyanın kendisi iyi belgelenmiştir, bu nedenle burada yeniden oluşturmayacağım:
less /etc/sudoers
Bu, kök erişimi olan ana alanları kapsar.
consolehelper
ve PackageKit
.)
getent passwd
, tanımlandıkları veritabanından bağımsız olarak, tüm sistem kullanıcılarını (root dahil), passwd biçiminde listelemeleri gerekir.
Tüm kullanıcıları yazdırmak için
perl -n -e '@user = split /:/ ; print "@user[0]\n";' < /etc/passwd
Yalnızca UID 0 kullanan kullanıcıları, başkalarının söylediği gibi, kök haklarına sahip olan kullanıcıları yazdırmak için:
perl -n -e '@user = split /:/ ; print "@user[0]\n" if @user[2] == "0";' < /etc/passwd
getent passwd
kullanın. İlk "tüm kullanıcıları yazdır" örneğiniz için, bunun yerine şunu deneyin:getent passwd | perl -naF: -e 'print "$F[0]\n"'
Tüm kullanıcıların hızlı bir listesi için, passwd
komutu ve ardından bir boşluk yazdıktan sonra iki kez sekmeyi (otomatik tamamlamaya) tıklamayı deneyin . Bu su
komutla da çalışır .
Kök ayrıcalıklı bir kullanıcı olarak yapılmalıdır.