Linux'ta Kullanıcılar Nasıl Listelenir
Yayınlanan: 2022-06-25Linux ç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.
İ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.
“/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
Her kullanıcı hesabı için bildirilen bir dizi yoğun bilgi vardır.
“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
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
Daha less
kullanmak, belirli bir kullanıcı hesabını aramak istemeniz durumunda, çıktı içinde arama yapmanızı da sağlar.
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'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
Kullanıcı hesap adları, diğer hesap bilgileri olmadan terminal penceresine yazılır.
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
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
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
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
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}
Bunun çalışması biraz zaman alır. Sonunda, komut istemine döndürüleceksiniz.
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
Bir insana ait kullanıcı hesabının en yüksek kimlik değeri 1401'dir.
Kullanıcı kimliği 65534, "hiç kimse" sistem kavramına atanmıştır.
getent şifresi {65534..65534}
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
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
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