Tüm kullanıcıları listelemek için bir komut var mı? Ayrıca terminalde kullanıcı eklemek, silmek, değiştirmek için?

Tüm kullanıcıları listelemek için bir komutun yanı sıra terminalden kullanıcı eklemek, silmek ve değiştirmek için komutlara ihtiyacım var - kullanıcı hesaplarını terminal tarafından kolayca yönetmede yardımcı olabilecek komutlar.

Listelemek

Tümünü listelemek için yerel kullanabileceğiniz kullanıcılar:

cut -d: -f1 /etc/passwd

Yerel olmayanlar da dahil olmak üzere kimlik doğrulaması yapabilen (bir şekilde) tüm kullanıcıları listelemek için bkz. bu cevap.

Bazı daha kullanışlı kullanıcı yönetimi komutları (bunlarla da sınırlıdır yerel kullanıcı):

Eklemek

Yeni bir kullanıcı eklemek için şunları kullanabilirsiniz:

sudo adduser new_username

veya:

sudo useradd new_username

Ayrıca bakınız: Adduser ve useradd arasındaki fark nedir?

/Silmek Kaldır

Bir kullanıcıyı kaldırmak / silmek için önce şunları kullanabilirsiniz:

sudo userdel Kullanıcı adı

Ardından, silinen kullanıcı hesabının giriş dizinini silmek isteyebilirsiniz :

sudo rm -r /ana sayfa/Kullanıcı adı

Lütfen yukarıdaki komutu dikkatli kullanın!

Değiştirmek

Bir kullanıcının kullanıcı adını değiştirmek için:

usermod -l new_username old_username

Bir kullanıcının parolasını değiştirmek için:

sudo passwd Kullanıcı adı

Bir kullanıcının kabuğunu değiştirmek için:

sudo chsh Kullanıcı adı

Bir kullanıcının ayrıntılarını değiştirmek için (örneğin gerçek ad):

sudo chfn Kullanıcı adı

Kullanıcıya bir kullanıcı eklemek için sudo grup:

adduser Kullanıcı adı sudo

veya

usermod -aG sudo Kullanıcı adı

Ve elbette, ayrıca bkz.: man adduser, man useradd, man userdel... ve böyle devam eder.

Sadece basın Ctrl+Alt+T terminal'i açmak için klavyenizde. Açıldığında, aşağıdaki komut (lar) ı çalıştırın:

cat /etc/passwd

veya

less /etc/passwdmore /etc/passwd

Awk'yi de kullanabilirsiniz:awk

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

Bu tür bilgileri elde etmenin en kolay yolu getent - görmek için manpage getent komut Manpage icon. Bu komut aynı çıktıyı verirken cat /etc/passwd hatırlamakta fayda var çünkü size işletim sistemindeki çeşitli öğelerin listelerini verecektir.

Yazdığınız tüm kullanıcıların listesini almak için (kullanıcılar listede listelendiği gibi /etc/passwd)

getent passwd

Kullanıcı eklemek için yeni kullanıcı yazacağınız sisteme

sudo adduser newuser

tüm varsayılan ayarların uygulandığı bir kullanıcı oluşturmak için.

Bonus: Herhangi bir kullanıcı eklemek için (örneğin anyuser bir gruba (örneğin cdrom) tür

sudo adduser anyuser cdrom

Bir kullanıcıyı silersiniz (örneğin modası geçmiş) birlikte

sudo deluser obsolete

Ev dizinini / postalarını da silmek isterseniz şunu yazarsınız

sudo deluser --remove-home obsolete

Ve

sudo deluser --remove-all-files obsolete

kullanıcıyı kaldıracak ve tüm sistemde bu kullanıcıya ait tüm dosyalar.

Kullanabilirsiniz compgen GNU bash yerleşik çok:

compgen -u

Listeler tüm kullanıcılar olacak.

Bu almalı, çoğu normal durumda, tüm normal (sistem dışı, garip değil, vb.) Kullanıcılar:

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Bu tarafından çalışır:

  • gelen okuma /etc/passwd
  • kullanım : sınırlayıcı olarak
  • üçüncü alan (Kullanıcı Kimlik numarası) 1000'den büyükse ve 65534 değilse, ilk alan (kullanıcının kullanıcı adı) yazdırılır.

Bunun nedeni, birçok linux sisteminde, 1000'in üzerindeki kullanıcı adlarının imtiyazsız (normal diyebilirsiniz) kullanıcılar için ayrılmasıdır. Bu konuda bazı bilgiler burada:

Kullanıcı kimliği (UID), Unıx benzeri bir işletim sistemi tarafından her kullanıcıya atanan benzersiz bir pozitif tamsayıdır. Her kullanıcı sisteme kullanıcı kimliği ile tanımlanır ve kullanıcı adları genellikle yalnızca insanlar için bir arabirim olarak kullanılır.

Uıd'ler, ilgili kullanıcı adları ve kullanıcıya özgü diğer bilgilerle birlikte /etc/passwd dosyasında saklanır...

Üçüncü alan kullanıcı kimliğini, dördüncü alan ise varsayılan olarak tüm sıradan kullanıcılar için kullanıcı kimliğine eşit olan grup kimliğini (GID) içerir.

Linux çekirdekleri 2.4 ve üzeri sürümlerde, uıd'ler sıfırdan 4,294,967,296'ya kadar olan değerleri temsil edebilen işaretsiz 32 bit tamsayılardır. Ancak, yalnızca 16 bit Uıd'leri barındırabilen eski çekirdekleri veya dosya sistemlerini kullanan sistemlerle uyumluluğu korumak için yalnızca 65,534'e kadar olan değerlerin kullanılması önerilir.

0'ın uıd'sinin özel bir rolü vardır: her zaman kök hesaptır (yani, her şeye gücü yeten yönetici kullanıcı). Bu hesapta kullanıcı adı değiştirilebilse ve aynı UID ile ek hesaplar oluşturulabilse de, güvenlik açısından her iki işlem de akıllıca değildir.

UID 65534, sıradan (yani ayrıcalıklı olmayan) bir kullanıcının aksine, genellikle hiç kimseye, sistem ayrıcalıklarına sahip olmayan bir kullanıcıya ayrılmıştır. Bu UID genellikle FTP (dosya aktarım protokolü) veya HTTP (köprü metni aktarım protokolü) üzerinden sisteme uzaktan erişen kişiler için kullanılır.

1'den 99'a kadar olan uıd'ler geleneksel olarak tekerlek, daemon, lp, operatör, haberler, posta vb. Gibi özel sistem kullanıcıları (bazen sözde kullanıcılar olarak adlandırılır) için ayrılmıştır. Bu kullanıcılar, toplam kök yetkilere ihtiyaç duymayan, ancak bazı yönetim görevlerini yerine getiren ve dolayısıyla sıradan kullanıcılara verilenlerden daha fazla ayrıcalığa ihtiyaç duyan yöneticilerdir.

Bazı Linux dağıtımları (yani sürümler) ayrıcalıklı olmayan kullanıcılar için uıd'leri 100'de başlatır. Red Hat gibi diğerleri 500'de, Debian gibi diğerleri ise 1000'de başlar. Dağıtımlar arasındaki farklılıklar nedeniyle, bir kuruluştaki bir ağda birden çok dağıtım kullanılıyorsa, manuel müdahale gerekebilir.

Ayrıca, 1000'den 9999'a kadar olan yerel kullanıcılar için bir UID bloğu ve 10000'den 65534'e kadar olan uzak kullanıcılar (yani ağdaki başka yerlerdeki kullanıcılar) için başka bir blok ayırmak uygun olabilir. Önemli olan bir şemaya karar vermek ve ona bağlı kalmaktır.

Belirli kullanıcı türleri için sayı bloklarını ayırmanın bu uygulamasının avantajları arasında, şüpheli kullanıcı etkinliği için sistem günlüklerinde arama yapmayı daha kolay hale getirmesidir.

Yaygın inanışın aksine, kullanıcı kimliği alanındaki her girişin benzersiz olması gerekli değildir. Ancak, benzersiz olmayan UID'LER güvenlik sorunlarına neden olabilir ve bu nedenle uıd'ler tüm kuruluş genelinde benzersiz tutulmalıdır. Benzer şekilde, uıd'lerin eski kullanıcılardan geri dönüşümünden mümkün olduğunca uzun süre kaçınılmalıdır.

liste giriş yapabilen tüm kullanıcılardan (bin, deamon, mail, sys vb. Gibi sistem kullanıcıları yok).)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

eklemek yeni kullanıcı

sudo adduser new_username

veya

sudo useradd new_username

silmek/ kullanıcı adını kaldır

sudo userdel username

Giriş dizinini silmek istiyorsanız (varsayılan dizin / home/username)

sudo deluser --remove-home username

veya

sudo rm -r /path/to/user_home_dir

Sistemdeki tüm dosyaları bu kullanıcıdan silmek istiyorsanız (yalnızca ev dizini değil)

sudo deluser --remove-all-files

Tamam, işte bunu çözmenize yardımcı olacak bir numara. Terminal otomatik tamamlama özelliğine sahiptir kullanıcı yazıp Sekme tuşuna iki kez basarsanız, kullanıcı ile var olan tüm komutları ilk 4 karakter olarak listeler.

user (tab tab)

bana mümkün olan en iyi seçenekleri verir useradd userdel usermod users users-admin
bir komut hakkında daha fazla bilgi edinmek isterseniz google'da arama yapın veya man man useraddgives useradd yazın - yeni bir kullanıcı oluşturun veya varsayılan yeni kullanıcı bilgilerini güncelleyin... ...

kullanıcılar listesi ne Mitch ile gitmeli " dedi.

Bash kazandırır bana ihtiyacınız sekme tamamlama seviyorum yardımcı olur umarım.

Makinedeki / home klasöründe giriş dizinleri olan kullanıcıları bulmak için aşağıdaki komutları çalıştırın

cd /homels 

Daha sonra sunucuya oturum açma yetkisi olan kullanıcıları görebilirsiniz. Herhangi bir kullanıcının dosyalarına bakmak istiyorsak, kök kullanıcı siz olmalısınız.

İlk cevap şunları önerir:

cut -d: -f1 /etc/passwd

Ancak bunu kullanarak ve aldığınız kullanıcı sayısını sayarak:

$ cut -d: -f1 /etc/passwd | wc -l46

bir dizüstü bilgisayar için 46 kullanıcı çok fazla!. Bunun yerine bunu kullanın:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync)' | cut -d: -f1rootrickguest-atkb2qguest-u4sf2iguest-rmlbtgguest-mz53vp

Konuk hesaplarını kaldırmak için (yine de kayıtlı dosyaları olmayan) şunları kullanın:

$ cat /etc/passwd | grep -vE '(/bin/false|/sbin/nologin|/bin/sync|guest-)' | cut -d: -f1rootrick

Listeden kaldırılan bazı örnek kullanıcılar şunlardır:

systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/falsegnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncsync:x:4:65534:sync:/bin:/bin/syncguest-atkb2q:x:999:999:Guest:/tmp/guest-atkb2q:/bin/bash

Tek bir kullanıcı sistemindeki kullanıcıların çoğunun aslında kendilerini kullanıcı olarak ayarlamış programlar olduğu ortaya çıkıyor.

sed cevap sed 'ler/:.*//' /etc/passwd

kullanıcıları listele: 'awk -F: ‘{ print $1 }’ /etc/passwd `