Linux'ta Kullanıcılar Nasıl Listelenir

Yayınlanan: 2022-06-25
Bir bash istemi gösteren Linux dizüstü bilgisayar
fatmawati achmad zaenuri/Shutterstock.com

Linux çok kullanıcılı bir işletim sistemidir, bu nedenle çok sayıda kullanıcı hesabı oluşturmak kolaydır. Zamanla, hangi hesapların gerekli olduğunun izini kaybetmek kolaydır. Kullanıcı hesaplarını listelemek, onları yönetmenize yardımcı olur.

Kullanıcı hesapları

Teknolojideki ilerlemeler genellikle kendi yeni problemlerini de beraberinde getirir. Bilgisayarlar birden fazla kullanıcıyı destekleyebilir hale gelir gelmez, her bir kişinin çalışmasını diğer herkesten ayırma ve kapsama ihtiyacı ortaya çıktı. Bu, kullanıcı hesapları kavramına yol açtı. Her kullanıcının adlandırılmış bir kimliği ve bir parolası vardır. Bunlar, hesaplarına giriş yapmalarına izin veren kimlik bilgileridir. Dosyaları, her kullanıcıya özel bir alanda tutulur.

Meşgul bir sistemde, hangi hesapları oluşturduğunuzu ve hangilerine artık ihtiyaç duymadığınızı gözden kaçırmak kolaydır. Güvenlik açısından, artık yapılandırılması ve bilgisayarınızda erişilebilir olması gerekmeyen kullanıcı hesaplarını tutmak kötü bir uygulamadır. Bu kullanıcıları kaldırmalısınız.

Bilgisayarınızı kullanan başka kimseleriniz olmasa bile, sadece nasıl yapılacağını öğrenmek veya yönetim süreçlerini öğrenmek ve uygulamak için bazı hesaplar oluşturmuş olabilirsiniz.

Linux'ta Bir Kullanıcı Nasıl Silinir (ve Her İzi Kaldırır)
İLGİLİ Linux'ta Bir Kullanıcı Nasıl Silinir (ve Her İzi Kaldırır)

İlk adım, bilgisayarınızda yapılandırılan kullanıcı hesaplarını listelemektir. Bu, onları gözden geçirmenize ve silinebilecek bir karar araması yapmanıza olanak tanır. Kullanıcıları listelemenin birkaç yöntemi vardır. Hangi dağıtımı kullanırsanız kullanın, bu teknikler herhangi bir uygulama veya yardımcı program yüklemenize gerek kalmadan sizin için çalışmalıdır.

Kullanıcıları cat komutuyla listeleyin

“/etc/passwd” dosyasında, her kullanıcıyla ilgili bilgilerle birlikte yapılandırılan kullanıcıların bir listesi tutulur. Bu, normal kullanıcıların terminal penceresine listeleyebileceği bir metin dosyasıdır. “/etc/passwd” dosyasına bakmak için sudo kullanmanıza gerek yoktur.

Linux'ta chfn ve usermod ile Kullanıcı Verileri Nasıl Değiştirilir
İLGİLİ Linux'ta chfn ve usermod ile Kullanıcı Verileri Nasıl Değiştirilir

“/etc/passwd” dosyasının içeriğini terminal penceresine göndermek için cat komutunu kullanabiliriz. Bu, dosyanın tüm içeriğini listeleyecektir. Bu, kişilere değil, süreçlere ve sisteme ait kullanıcı hesaplarının girişlerini de göreceğiniz anlamına gelir.

 kedi /etc/passwd 

/etc/passwd dosyasının içeriğini cat ile terminal penceresine gönderme

Her kullanıcı hesabı için bildirilen bir dizi yoğun bilgi vardır.

/etc/passwd dosyasının içeriği

“dave” adlı kullanıcı hesabının bilgileri, aralarında “ : ” bulunan iki nokta üst üste bu bilgi parçalarını içerir.

  • dave : Kullanıcı hesabının adı. Genellikle hesabın sahibi olan kişinin adıdır.
  • x : Bir zamanlar bu, hesabın şifresini tutuyordu. Günümüzde şifreler “/etc/shadow” dosyasında saklanmaktadır. "X", parolanın o dosyada olduğu anlamına gelir.
  • 1000 : Bu hesabın kullanıcı kimliği. Tüm kullanıcı hesaplarının benzersiz bir sayısal kimliği vardır. Normal kullanıcı hesapları genellikle 1000'de başlar ve her yeni hesap 1001, 1002 vb. gibi bir sonraki ücretsiz kimliği alır.
  • 1000 : Kullanıcının ait olduğu varsayılan grubun grup kimliği. Normal koşullarda, varsayılan grup, kullanıcı kimliğiyle aynı değere sahiptir.
  • dave,,, : Kullanıcı hakkında isteğe bağlı ek bilgiler topluluğu. Bu alan, aralarında virgül “ ” , verileri içerir. Kullanıcının tam adı, ofis numarası ve telefon numarası gibi bilgileri tutabilirler. “Mary” kullanıcı hesabı girişi, tam adının Mary Quinn olduğunu gösterir.
  • /home/dave : Kullanıcının ana klasörünün yolu.
  • /bin/bash : Bu kullanıcı için varsayılan kabuk.

Bu komutun çıktısını wc yardımcı programı aracılığıyla aktarırsak ve -l (satırlar) seçeneğini kullanırsak dosyadaki satırları sayabiliriz. Bu bize bu bilgisayarda yapılandırılan hesapların sayısını verecek.

 kedi /etc/passwd | wc -l 

/etc/passwd dosyasındaki hesapların sayısını sayma

Bu rakam, uygulamalar tarafından oluşturulan sistem hesaplarını ve kullanıcıları içerir. Bu bilgisayarda yapılandırılmış yaklaşık 400 normal kullanıcı var. Sonucunuzun çok daha az olması muhtemeldir.

Bu kadar çok hesapla, “/etc/passwd” dosyasını görüntülemek için less kullanmak daha uygundur.

 daha az /etc/passwd 

/etc/passwd dosyasını daha az açma

Daha less kullanmak, belirli bir kullanıcı hesabını aramak istemeniz durumunda, çıktı içinde arama yapmanızı da sağlar.

/etc/passwd dosyasında mary hesabını daha az arama

awk Komutu

awk komutunu kullanarak sadece kullanıcı adını görüntüleyebiliriz. Bu, birçok kullanıcı hesabına bir şeyler yapması gereken bir komut dosyası yazarken faydalı olabilir. Kullanıcı hesap adlarını listelemek ve bunları bir metin dosyasına yeniden yönlendirmek harika bir zaman kazandırıcı olabilir. Tek yapmanız gereken, komutun geri kalanını her satıra kopyalayıp yapıştırmak.

awk Komutu Linux'ta Nasıl Kullanılır
İLGİLİ Linux'ta awk Komutu Nasıl Kullanılır

awk'a alan ayırıcı olarak iki nokta üst üste “:” kullanmasını ve ilk alanı yazdırmasını söyleyeceğiz. -F (alan ayırıcı) seçeneğini kullanacağız.

 awk -F: '{print $1}' /etc/passwd 

/etc/passwd'den yalnızca kullanıcı adlarını seçmek için bir awk komutu

Kullanıcı hesap adları, diğer hesap bilgileri olmadan terminal penceresine yazılır.

Terminal penceresinde görüntülenen kullanıcı hesabı adları

kesme komutu

Aynı şeyi cut komutunu kullanarak da başarabiliriz. -d (sınırlayıcı) seçeneğini kullanmamız ve -f (alanlar) seçeneğini kullanarak sadece ilk alanı seçmesini istememiz gerekiyor.

 kesici -d: -f1 

/etc/passwd dosyasından yalnızca kullanıcı adlarını görüntülemek için cut komutunu kullanma

Bu, sistem ve diğer insan dışı hesaplar dahil tüm kullanıcı hesaplarını listeler.

compgen Komutanlığı

compgen komutu, kullanıcı hesaplarını listelemek için -u (kullanıcı) seçeneğiyle birlikte kullanılabilir. Her satırda tek bir kullanıcı adı olan uzun bir liste yerine, kullanıcı hesaplarını sütunlarda listelemek için çıktıyı column komutu aracılığıyla ileteceğiz.

 compgen -u | kolon 

/etc/passwd dosyasındaki kullanıcı hesap adlarını sütunlarda listelemek için compgen ve column komutlarını kullanma

Yine, listelenen ilk kullanıcı hesapları insanlara değil süreçlere aittir.

UID MIN ve UID MAX

Kullanıcı hesaplarına daha önce gördüğümüz gibi sayısal bir kimlik verilir. Genellikle, normal insan kullanıcı hesapları 1000'den başlar ve insan olmayan sistem kullanıcı hesapları 0'dan başlar. Kök hesabın kimliği 0'dır.

Mümkün olan en düşük ve en yüksek kullanıcı kimliklerini doğrulayabilirsek, bu bilgileri bu iki değer arasındaki kullanıcı hesaplarını seçmek için kullanabiliriz. Bu sadece gerçek kişilere ait kullanıcı hesaplarını seçmemize izin verecektir.

Linux, UID_MIN ve UID_MAX adlı yapılandırma parametrelerini kullanarak bu iki değeri takip eder. Bunlar “/etc/login.defs” dosyasında tutulur. Bu değerleri grep kullanarak kolayca görebiliriz.

-E (genişletilmiş regex) seçeneğini kullanacağız. Arama dizimiz, “/etc/login.defs” dosyasında “UID_MIN” veya “UID_MAX” ile başlayan satırları arar. “ ^ ” şapkası bir satırın başlangıcını temsil eder.

 grep -E '^UID_MIN|^UID_MAX' /etc/login.defs 

Bu bilgisayardaki kullanıcı kimlikleri aralığı 1000 ila 60.000 arasındadır.

İLGİLİ: Linux'ta Normal İfadeler (regex'ler) Nasıl Kullanılır

Getent Komutanlığı

getent komutu, sistem veritabanlarından bilgileri okur. Parametre olarak “passwd” kullanarak “/etc/passwd” dosyasındaki girdileri listelemesini söyleyebiliriz.

 şifre almak 

/etc/passwd dosyasını terminal penceresine atmak için getent'i kullanma

Bu bize cat kullanarak elde edebileceğimiz aynı okumayı verir. Ancak getent parladığı yer, "anahtarlar" olarak bilinen değerleri kabul etmektir. Anahtar, getent hangi bilgileri rapor ettiğini belirler. Tek bir kullanıcı için girişi görmek istiyorsak, komut satırında kullanıcı hesap adını geçebiliriz.

 şifreli Sarah

Kullanıcı hesabı adının büyük/küçük harf duyarlı olduğunu unutmayın.

 getent passwd sarah 

getent ile tek bir kullanıcı hesabı arıyorum

Ayrıca görmek istediğimiz kullanıcı hesap kimliklerinin üst ve alt limitlerini de iletebiliriz. Tüm normal kullanıcı hesaplarını kesinlikle görmek için UID_MIN ve UID_MAX değerlerini kullanabiliriz.

 getent şifresi {1000..60000} 

getent ile üst ve alt hesap kimliklerini kullanma

Bunun çalışması biraz zaman alır. Sonunda, komut istemine döndürüleceksiniz.

getent tarafından terminal penceresine gönderilen /etc/passwd dosyasının içeriği

Uzun yürütme süresinin nedeni, getent kadar olan tüm kullanıcı hesabı değerleri için eşleşme bulmaya çalışmasıdır.

En yüksek kullanıcı hesabı kimliğinin ne olduğunu görelim. cut komutunu kullanacağız, ancak bu sefer üçüncü alan olan kullanıcı kimliği alanını isteyeceğiz. Çıktıyı sort yoluyla ileteceğiz ve -g (genel sayısal sıralama) seçeneğini kullanacağız.

 kesim -d: -f3 /etc/passwd | sıralama -g 

Kesimden çıktıyı sort komutuna aktarma komutu

Bir insana ait kullanıcı hesabının en yüksek kimlik değeri 1401'dir.

Sıralanmış kullanıcı hesabı kimlikleri listesi

Kullanıcı kimliği 65534, "hiç kimse" sistem kavramına atanmıştır.

 getent şifresi {65534..65534} 

ID 65534 ile sistem kullanıcısı kimse yok

Bu bilgisayarda 60000 UID_MAX değerini kullanmak yerine 1500 gibi daha gerçekçi bir değer kullanabileceğimizi biliyoruz. Bu, işleri güzel bir şekilde hızlandıracak. Ayrıca, yalnızca kullanıcı hesaplarının adlarını çıkarmak için çıktıyı cut üzerinden aktaracağız.

getent şifresi {1000..1500} | kes -d: -f1

Getent çıktısı, kullanıcı hesap adlarını listelemek için kesilmiştir

Kullanıcılar listelenir ve hemen komut istemine döneriz.

Çıktıyı cut üzerinden borulamak yerine, çıktıyı wc ile boruya aktaralım ve satırları bir kez daha sayalım. Bu bize "gerçek" kullanıcı hesaplarının sayısını verecektir.

 getent şifresi {1000..1500} | wc -l 

Getent ve wc ile normal kullanıcı hesaplarını sayma

Artık bu bilgisayarda kesinlikle yapılandırılmış, insana ait 400 kullanıcı hesabı olduğunu görebiliyoruz.

Güç ve Sadelik

Bu tekniklerden biri, bir Linux bilgisayardaki kullanıcı hesaplarını gözden geçirmeniz gerektiğinde kesinlikle ihtiyaçlarınıza uygun olacaktır. Bu komutlar tüm dağıtımlarda bulunmalıdır ve hiçbiri sudo erişimi gerektirmez, bu nedenle hepsi her kullanıcı tarafından kullanılabilir.

İLGİLİ: Linux'ta sudo Erişimi Nasıl Kontrol Edilir