
Me pregunto: ¿Por qué existen estos dos comandos en Debian Linux, con nombres y funcionalidades muy similares? Esto siempre ha sido confuso para mí.
- ¿Alguno de ellos es superior a otro?
- ¿Por qué no se fusionan en uno solo?
- ¿Hay alguna diferencia significativa entre ellos?
- ¿Cuál debería usar? ¿O depende de un caso de uso?
Respuesta1
useradd
Es un binario nativo compilado con el sistema. Pero adduser
es un script en Perl que usa useradd
binario en el back-end.
adduser
es más fácil de usar e interactivo que su back-end useradd
. No hay diferencia en las funciones proporcionadas.
Respuesta2
La principal ventaja paraagregar usuarioencimaagregar usuariotrata con usuarios a nivel de sistema. Conagregar usuariola cuenta de usuarios a nivel del sistema cuando se crea coloca un directorio de usuario en el hogar para el usuario del sistema dondeagregar usuariono lo hace automáticamente. Si lee al hombre, son esencialmente iguales, excepto que los usuarios a nivel de sistema y los directorios de inicio asociados son automáticos.agregar usuariocrea un directorio /home/user automáticamente para usuarios de nivel de sistema donde no hay una disposición enagregar usuario, excepto si lo especifica-metroopción. Las otras lecturas con las que me he encontrado afirman genéricamente que UID y GUID son asignados por estándares conformes aceptados de Debian enagregar usuario.
Respuesta3
En un par de instancias de Redhat que revisé (4.9 de 2011 y 6.9 de 2017), adduser es simplemente un alias de useradd, no un script Perl. Aquí está en 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
La forma en que recuerdo que useradd es el programa "correcto" es la siguiente: agregar un usuario es solo una operación en el espectro CRUD. También necesita las operaciones de 'modificar' y 'eliminar' (la 'lectura' presumiblemente se cubre al ver /etc/passwd). Y así, los programas se nombran.usuario*(useradd, usermod y userdel respectivamente). Supongo que la alternativa*usuarioLa convención de nomenclatura (adduser, moduser y deluser, que no existen) también podría funcionar. Pero sería un poco más incómodo (por una razón que no puedo expresar claramente en este momento :)
Respuesta4
Dentro de raspian (tendría que buscar otros sistemas operativos), 'adduser USER' inicia un cuadro de diálogo (TUI) mientras que 'useradd USER' NO lo hace.
Aparentemente, al usar adduser, una vez que aparece el cuadro de diálogo, el comando 'useradd' completo ya está ejecutado. Incluso si presiona CTRL-C, su usuario está allí.
Como en los nuevos sistemas crean grupos "personales", para eliminar el usuario recién creado necesitarías:
- vi /etc/contraseña
- vi /etc/grupo
- rm -rf /inicio/USUARIO
Supongo que debido a que adduser "usa" useradd, el resto son metadatos sobre el usuario. Entonces, técnicamente no hay cambios en "skel", "máscaras de archivo" o similares, es decir, los valores predeterminados de su sistema.
Por otro lado, debido a que useradd no muestra ninguna TUI, podría ser más útil en secuencias de comandos.
Para ser honesto, lo probé solo en rasbian, porque esa fue la razón por la que entré en la pregunta.
Me imagino que otros sistemas operativos podrían implementar una versión diferente de adduser.