Linux’ta Tüm Mevcut Kullanıcıları Görüntüleme: VPS Yöneticileri için Tam Rehber
Kullanıcı hesaplarını yönetmek, herhangi bir Linux sistem yöneticisinin en temel sorumluluklarından biridir. İster erişim izinlerini denetliyor, ister giriş sorunlarını gideriliyor, ister sunucunuzun güvenlik duruşunu sertleştiriyor olun, sisteminizde tam olarak hangi kullanıcıların bulunduğunu bilmek önemli bir beceridir. Bu kılavuz, ham sistem dosyalarını okumaktan güçlü komut satırı yardımcı programlarından yararlanmaya kadar Linux kullanıcılarını listelemek ve incelemek için her pratik yöntemi size gösterir.
AlexHost ile bir VPS Hosting ortamı çalıştırıyorsanız, bu teknikler doğrudan Ubuntu, Debian veya CentOS sunucunuza uygulanır ve altyapınıza kimlerin erişebileceği konusunda tam kontrol sağlamanıza yardımcı olur.
Sunucu Güvenliği için Linux Kullanıcılarını Görüntülemenin Neden Önemli Olduğu
Komutlara dalmadan önce, bu görevin neden bu kadar önemli olduğunu anlamaya değer. Herhangi bir Linux sunucusunda — özellikle WordPress, Laravel veya özel API’ler gibi web uygulamaları barındırıyorsanız — zaman içinde birden fazla kullanıcı hesabı birikir:
- Sistem kullanıcıları yüklü hizmetler tarafından otomatik olarak oluşturulan (örneğin,
www-data,mysql,nginx) - İdari kullanıcılar
sudoveya root düzeyinde ayrıcalıklara sahip - Uygulama kullanıcıları belirli yazılım yığınlarına bağlı
- Unutulan veya yetim hesaplar yazılım kaldırılması veya personel değişiklikleri sonrasında geride bırakılan
Bu hesapları düzenli olarak denetlemek şunları yapmanıza yardımcı olur:
- Yetkisiz veya şüpheli hesapları algılama
- En az ayrıcalık ilkesini uygulama
- Güvenlik politikaları ve denetim gereksinimlerine uyum sağlama
- Yanlış yapılandırılmış kabukları veya ana dizinleri tanımlama
AlexHost’un root erişimi, NVMe destekli depolama ve yerleşik DDoS koruması ile bu komutları çalıştırmak hızlı, güvenilir ve güvenlidir — yük altında üretim sistemlerinde bile.
/etc/passwd Dosyasını Anlama
Linux’taki tüm kullanıcı hesabı bilgileri /etc/passwd dosyasında depolanır. Bu, işletim sisteminin kimlik doğrulama ve kullanıcı yönetimi işlemleri sırasında okuduğu düz metin bir veritabanıdır. Dosyadaki her satır tek bir kullanıcı hesabını temsil eder ve bu yapılandırılmış biçimi izler:
username:password:UID:GID:comment:home_directory:shellHer alan ne anlama geldiği aşağıda açıklanmıştır:
| Alan | Açıklama |
|---|---|
username | Kullanıcının giriş adı |
password | Tarihsel olarak burada depolanmıştır; şimdi x ile değiştirilmiştir (gerçek hash /etc/shadow içindedir) |
UID | Kullanıcı ID numarası (0 = root, 1–999 = sistem kullanıcıları, 1000+ = normal kullanıcılar) |
GID | Birincil grup ID |
comment | İsteğe bağlı açıklama veya tam ad (GECOS alanı) |
home_directory | Kullanıcının ana klasörüne giden yol |
shell | Kullanıcıya atanan varsayılan kabuk |
Tipik bir giriş şöyle görünür:
alexadmin:x:1001:1001:Alex Admin,,,:/home/alexadmin:/bin/bashBu yapıyı anlamak aşağıdaki her yöntemi yorumlamayı çok daha kolay hale getirir.
Yöntem 1: /etc/passwd Dosyasını Doğrudan Okuyarak Tüm Kullanıcıları Görüntüleyin
En basit yaklaşım, /etc/passwd dosyasının tüm içeriğini terminalinize yazdırmaktır. Çıktıyı nasıl gezinmek istediğinize bağlı olarak iki ana seçeneğiniz vardır.
cat Kullanma (kısa çıktı veya boru için en iyisi)
cat /etc/passwdBu, tüm dosyayı standart çıktıya boşaltır. Tipik bir sunucuda, çoğu sistem hesabı olmak üzere düzinelerce giriş göreceksiniz.
less Kullanma (etkileşimli tarama için en iyisi)
less /etc/passwdless çağrıştırıcısı dosyayı etkileşimli olarak kaydırmanıza izin verir. Çıkmak için q tuşuna, arama yapmak için / tuşuna ve gezinmek için ok tuşlarına basın.
Örnek Çıktı
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
alexadmin:x:1001:1001::/home/alexadmin:/bin/bash
deploy:x:1002:1002::/home/deploy:/bin/bashPro ipucu: Kabuğu olarak /usr/sbin/nologin veya /bin/false olan hesaplar etkileşimli olarak oturum açamazlar — bunlar sistem daemon’ları tarafından kullanılan hizmet hesaplarıdır.
Yöntem 2: Kullanıcı Veritabanını Sorgulamak için getent Kullanın
getent komutu (*get entries* anlamına gelir) /etc/nsswitch.conf içinde tanımlanan sistem veritabanlarından kayıtları alır. Bu, yalnızca yerel /etc/passwd dosyasından değil, LDAP veya NIS gibi harici dizinlerden de kullanıcı hesapları kaynaklandığında doğru şekilde çalıştığı için modern Linux ortamlarında tercih edilen yöntemdir.
getent passwdÇıktı biçimi /etc/passwd ile aynıdır, ancak getent nerede depolandıklarından bağımsız olarak *tüm* kullanıcıları görmenizi sağlar. Standart bir AlexHost VPS’de, çıktı /etc/passwd ile eşleşecektir, ancak getent kullanmak taşınabilirlik ve bütünlük için en iyi uygulamadır.
Belirli Bir Kullanıcı İçin Filtre Uygulayın
getent passwd alexadminBu, yalnızca alexadmin kullanıcısının kaydını döndürür — bir hesabın var olduğunu hızlı bir şekilde doğrulamak ve yapılandırmasını kontrol etmek için kullanışlıdır.
Yöntem 3: cut ile Yalnızca Kullanıcı Adlarını Çıkarın
Yalnızca bir temiz kullanıcı adları listesine ihtiyacınız olduğunda — UID’ler, ana dizinler veya kabuk bilgileri olmadan — getent ile cut komutunu birleştirerek ilk alanı izole edin.
getent passwd | cut -d: -f1Nasıl çalışır:
getent passwdtam kullanıcı veritabanını çıktı verir| cut -d: -f1bu çıktıyıcutöğesine aktarır; bu,:(-d:) sınırlayıcısını kullanır ve yalnızca ilk alanı (-f1) — kullanıcı adını çıkarır
Örnek Çıktı
root
daemon
bin
sys
www-data
alexadmin
deploy
backupBu temiz liste, komut dosyası oluşturma, günlüğe kaydetme veya beklenmedik hesapları hızlı bir şekilde tarama için idealdir.
Yalnızca İnsan (Giriş) Kullanıcılarını Göster
Sistem hesaplarının genellikle UID’leri 1000’in altındadır. Yalnızca normal insan kullanıcılarını filtrelemek için awk ile bir UID kontrolü birleştirin:
awk -F: '$3 >= 1000 && $1 != "nobody" {print $1}' /etc/passwdBu, özellikle paylaşılan barındırma ortamlarında veya birçok hizmet hesabına sahip sunucularda kullanışlıdır.
Yöntem 4: Özel, Seçmeli Çıktı İçin awk Kullanın
awk komutu, hangi alanları görüntüleyeceğiniz ve bunları nasıl biçimlendireceğiniz konusunda tam kontrol sağlayan güçlü bir metin işleme aracıdır. Bu, idari veya güvenlik incelemesi amaçları için kullanıcı hesaplarının hızlı bir genel görünümüne ihtiyacınız olduğunda paha biçilmezdir.
Kullanıcı Adlarını ve Ana Dizinleri Görüntüleyin
getent passwd | awk -F: '{print "Username: " $1 "t Home Directory: " $6}'Örnek Çıktı
Username: root Home Directory: /root
Username: www-data Home Directory: /var/www
Username: alexadmin Home Directory: /home/alexadmin
Username: deploy Home Directory: /home/deployKullanıcı Adlarını, UID’leri ve Kabukları Görüntüleyin
getent passwd | awk -F: '{print "User: " $1 "t UID: " $3 "t Shell: " $7}'Yalnızca Geçerli Giriş Kabuğuna Sahip Kullanıcıları Göster
getent passwd | awk -F: '$7 == "/bin/bash" || $7 == "/bin/sh" {print $1, $6, $7}'Bu komut, güvenlik denetimleri için özellikle kullanışlıdır — sunucunuzda etkileşimli bir kabuk oturumu açabilen her hesabı ortaya çıkarır.
Yöntem 5: Toplam Kullanıcı Sayısını Sayın
Sistemdeki tüm kullanıcı hesaplarının hızlı bir sayısına mı ihtiyacınız var?
getent passwd | wc -lYalnızca insan kullanıcılarını (UID ≥ 1000) saymak için:
awk -F: '$3 >= 1000' /etc/passwd | wc -lYöntem 6: Hangi Kullanıcıların Sudo Ayrıcalıklarına Sahip Olduğunu Kontrol Edin
Ayrıcalıkları kimin yükseltebileceğini bilmek güvenlik açısından kritiktir. Ayrıcalıklı hesapları tanımlamak için bu komutları kullanın:
sudo grup üyelerini kontrol edin
getent group sudowheel grubunu kontrol edin (CentOS/RHEL’de yaygın)
getent group wheelTüm sudoers’ı listeleyin (root gerektirir)
sudo cat /etc/sudoerscPanel veya başka herhangi bir yönetilen kontrol paneli ortamı olan VPS’nizde, bazı kullanıcılar /etc/sudoers.d/ içindeki panel’e özgü yapılandırma dosyaları aracılığıyla sudo hakları verilmiş olabilir.
Yöntem 7: Şu Anda Oturum Açmış Kullanıcıları Görüntüleyin
Sunucunuza *şu anda* kim aktif olarak oturum açmış olduğunu görmek için who veya w komutunu kullanın:
whoww komutu, her kullanıcının şu anda ne çalıştırdığı, giriş saati ve
