useradd
je nativní binární zkompilovaný se systémem. Ale adduser
je perl skript, který používá useradd
binární v back-endu.
adduser
je uživatelsky přívětivější a interaktivnější než jeho back-end useradd
. V poskytovaných funkcích není žádný rozdíl.
Hlavní výhoda pro adduser přes useradd jedná s uživateli na systémové úrovni. S adduserem uživatelský účet na systémové úrovni při vytvoření vloží pro uživatele systému domovský adresář uživatele, kde useradd ne automaticky. Pokud si přečtete muže, jsou v podstatě stejné, kromě uživatelů na systémové úrovni a související domovské adresáře jsou automatické. adduser automaticky vytvoří adresář /home/user pro uživatele na systémové úrovni, kde není ustanovení v useradd , pokud není určeno pomocí -m volba. Ostatní údaje, na které jsem narazil, obecně uvádějí, že UID a GUID jsou přiřazeny podle akceptovaných konformních standardů Debianu v adduser .
V několika případech Redhat, které jsem zkontroloval (4.9 z roku 2011 a 6.9 z roku 2017), je adduser jednoduše alias pro useradd, nikoli skript v Perlu. Tady je to v Redhat 6.9:
$ 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
Způsob, jakým si pamatuji, že useradd je „správný“ program, je tento:přidání uživatele je pouze jednou operací ve spektru CRUD. Potřebujete také operace 'modify' a 'delete' ('read' je pravděpodobně pokryto prohlížením /etc/passwd). A tak se programy jmenují uživatel* (useradd, usermod a userdel). Předpokládám, že alternativní *user Konvence pojmenování (adduser, moduser a deluser -- tyto neexistují) by také mohla fungovat. Ale bylo by to trochu trapnější (z důvodu, který v tuto chvíli nedokážu jasně vyjádřit :)