useradd
is native binary compiled with the system. But, adduser
is a perl script which uses useradd
binary in back-end.
adduser
is more user friendly and interactive than its back-end useradd
. There's no difference in features provided.
Ich frage mich: Warum gibt es diese beiden Befehle unter Debian Linux mit sehr ähnlichen Namen und Funktionen? Das war immer verwirrend für mich.
useradd
is native binary compiled with the system. But, adduser
is a perl script which uses useradd
binary in back-end.
adduser
is more user friendly and interactive than its back-end useradd
. There's no difference in features provided.
Der Hauptvorteil von adduser gegenüber useradd ist der Umgang mit Benutzern auf Systemebene. Mit adduser legt das Benutzerkonto auf Systemebene bei der Erstellung ein Benutzerverzeichnis für den Systembenutzer in das Home-Verzeichnis, in dem sich useradd nicht automatisch befindet. Wenn Sie den Mann lesen, sind sie im Wesentlichen gleich, außer für Benutzer auf Systemebene und die zugehörigen Basisverzeichnisse sind automatisch. adduser erstellt automatisch ein / home / user-Verzeichnis für Benutzer auf Systemebene, für die keine Bereitstellung in useradd vorliegt, es sei denn, diese Option wird mit der Option -m angegeben . Die anderen Messwerte, die ich kennengelernt habe, besagen generell, dass UID und GUID von akzeptierten konformen Debian-Standards in adduser zugewiesen werden.
In einigen Redhat-Instanzen (4,9 aus 2011 und 6,9 aus 2017) wurde adduser lediglich als Alias für useradd und nicht als Perl-Skript bezeichnet. Hier ist es in 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
Ich erinnere mich daran, dass useradd das "richtige" Programm ist: Das Hinzufügen eines Benutzers ist nur eine Operation im CRUD-Spektrum. Sie benötigen auch 'Modifizieren' und 'Löschen' Operationen ('Lesen' wird vermutlich durch das Anzeigen von / etc / passwd abgedeckt). Die Programme heißen also user * (useradd, usermod und userdel). Ich nehme an, die alternative * Benennungskonvention für Benutzer (adduser, moduser und deluser - diese sind nicht vorhanden) könnte ebenfalls funktionieren. Aber es wäre etwas unbeholfener (aus einem Grund, den ich im Moment nicht klar ausdrücken kann :)