"Adduser" ve "useradd" arasındaki fark nedir?


61

Merak ediyorum: Neden bu iki komut Debian Linux'ta, benzer isimler ve işlevlerle var? Bu her zaman benim için kafa karıştırıcı olmuştur.

  • Bunlardan herhangi biri diğerinden üstün mü?
  • Neden birle birleştirilmiyorlar?
  • Aralarında önemli bir fark var mı?
  • Hangisini kullanmalıyım? Yoksa kullanım durumuna mı bağlı?

1
useraddUnix benzeri tüm platformlarda mevcut olduğuna dikkat edin ; addusersadece Debian ve türevleri içindir.
Franklin Yu

Yanıtlar:


68

useraddsistemle derlenmiş yerel bir ikilidir. Ancak, arka uçta ikili adduserkullanan bir perl betiğidir useradd.

adduserarka ucundan daha kullanıcı dostu ve etkileşimlidir useradd. Sağlanan özelliklerde hiçbir fark yoktur.


1
adduser tüm dağıtımlarda (örneğin, suse tabanlı) kullanılamaz ve bazılarında ise sadece useradd (redhat tabanlı) ile ilgili bir bağlantı bulunur.
ychaouche

11

Ana avantajı adduser üzerinde useradd komutunun sistem düzeyi kullanıcıları uğraşıyor. İle adduser oluşturulan sistem kullanıcı için evde bir kullanıcı dizini koyduğunda sistem düzeyi kullanıcıların hesabı useradd otomatik olarak yok. Adamı okursanız, aslında sistem seviyesi kullanıcıları dışında aynıdır ve ilgili ev dizinleri otomatiktir. adduser , -m seçeneği ile belirtilmediği sürece , useradd içinde bir provizyon olmadığı sistem seviyesi kullanıcıları için otomatik olarak bir / home / user dizini oluşturur . Karşılaştığım diğer okumalar, genel olarak UID ve GUID’nin adduser’da kabul edilen uyumlu Debian standartları tarafından atandığını belirtir..


1
adduser bir --no-create-home seçeneğine sahiptir.
ychaouche

1

Kontrol ettiğim birkaç Redhat örneğinde (2011'den 4.9 ve 2017'den 6.9), adduser bir Perl betiği değil, sadece genel bir takma addır. İşte Redhat 6.9'da:

$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root      7 Nov  2  2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb  9  2016 /usr/sbin/useradd

Kullanılmayacağını hatırladığım şekilde 'doğru' program şudur: bir kullanıcı eklemek CRUD spektrumunda sadece bir işlemdir. Ayrıca 'change' ve 'delete' işlemlerine de ihtiyacınız var ('read', muhtemelen / etc / passwd dosyası tarafından gösteriliyor). Ve böylece, programlar user * (sırasıyla useradd, usermod ve userdel) olarak adlandırılır. Alternatif * kullanıcı adlandırma kuralının (adduser, moduser ve deluser - bunlar mevcut değil) de işe yarayacağını düşünüyorum. Ancak biraz daha garipleşirdi (bir sebepten dolayı şu anda net olarak ifade edemiyorum :)


moduserDebian'da bulamıyorum , ama deluserkesinlikle orada.
ychaouche

0

Raspian'da (diğer işletim sistemlerini kontrol etmem gerekir), 'adduser USER', 'useradd USER' DEĞİL iken bir diyalog başlatır (TUI).

Görünüşe göre, adduser kullanarak, iletişim kutusu açıldığında, 'useradd' komutunun tamamı çalıştırıldı. CTRL-C'yi kullansanız bile, kullanıcı orada.

Yeni sistemlerde olduğu gibi "kişisel" gruplar oluşturuyorlar, yeni oluşturulan kullanıcıyı kaldırmak için yapmanız gerekenler:

  • vi / etc / passwd
  • vi / etc / group
  • rm -rf / ana sayfa / KULLANICI

Adduser'ın "useradd" kullandığı için geri kalanının kullanıcı hakkında meta veri olduğunu varsayalım. Bu nedenle, teknik olarak "skel", "dosya maskeleri" veya benzerlerinde hiçbir değişiklik yoktur, yani sistem varsayılanlarınızdır.

Diğer taraftan, useradd herhangi bir TUI getirmediğinden, kod yazarken daha yararlı olabilir.

Dürüst olmak gerekirse, sadece rasbianca test ettim, çünkü soruya bastım sebebim buydu.

Diğer işletim sistemlerinde farklı bir adduser sürümü kullanabileceğini hayal edebiliyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.