¿Cuál es la diferencia entre "adduser" y "useradd"?

61

Me pregunto: ¿por qué existen estos dos comandos en Debian Linux, con nombres y funciones muy similares? Esto siempre ha sido confuso para mí.

  • ¿Alguno de ellos es superior a otro?
  • ¿Por qué no se fusionan en uno?
  • ¿Hay alguna diferencia significativa entre ellos?
  • ¿Cuál debo usar? ¿O depende de un caso de uso?
Petr Pudlák
fuente
1
Tenga en cuenta que useraddestá disponible en todas las plataformas tipo Unix; adduseres solo para Debian y sus derivados.
Franklin Yu

Respuestas:

68

useraddes binario nativo compilado con el sistema. Pero, adduseres un script perl que usa useraddbinarios en el back-end.

adduseres más fácil de usar e interactivo que su back-end useradd. No hay diferencia en las características proporcionadas.

Manzana II
fuente
1
adduser no está disponible en todas las distribuciones (por ejemplo, basadas en suse), y en algunas otras es solo un enlace simbólico para usarradd (basado en redhat).
Ychaouche
12

La principal ventaja de adduser sobre useradd es tratar con usuarios de nivel de sistema. Con adduser, la cuenta de usuarios a nivel del sistema cuando se crea coloca un directorio de usuarios en el hogar para el usuario del sistema donde useradd no lo hace automáticamente. Si lee al hombre, son esencialmente los mismos, excepto para los usuarios de nivel de sistema y los directorios principales asociados son automáticos. adduser crea un directorio / home / user automáticamente para usuarios de nivel de sistema donde no hay una disposición en useradd , excepto si se especifica mediante la opción -m . Las otras lecturas con las que me he encontrado dicen genéricamente que UID y GUID son asignados por estándares aceptados de Debian en adduser.

usuario517969
fuente
1
adduser tiene una opción --no-create-home.
Ychaouche
1

En un par de instancias de Redhat que verifiqué (4.9 de 2011 y 6.9 de 2017), adduser es simplemente un alias para usarradd, no un script de 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 'modificar' y 'eliminar' ('leer' se cubre presumiblemente viendo / etc / passwd). Y así, los programas se denominan usuario * (useradd, usermod y userdel respectivamente). Supongo que la convención de nomenclatura de usuario alternativa * (adduser, moduser y deluser - estos 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 :)

Happyblue
fuente
no se puede encontrar moduseren Debian, pero deluserdefinitivamente está ahí.
ychaouche
0

Dentro de raspian (necesitaría buscar otros sistemas operativos), 'adduser USER' inicia un diálogo (TUI) mientras que 'useradd USER' NO.

Aparentemente, usando adduser, una vez que aparece el diálogo, el comando completo 'useradd' ya está ejecutado. Incluso si usted CTRL-C su usuario está allí.

Al igual que en los nuevos sistemas, crean grupos "personales", para eliminar al usuario recién creado necesitaría:

  • vi / etc / passwd
  • vi / etc / group
  • rm -rf / home / USUARIO

Supongo que porque adduser "usa" useradd, el resto son metadatos sobre el usuario. Por lo tanto, técnicamente no hay cambios en "skel", "máscaras de archivo", o similares, es decir, el sistema predeterminado.

Por otro lado, debido a que useradd no muestra ninguna TUI, podría ser más útil en las secuencias de comandos.

Para ser honesto, lo probé solo en rasbian, porque esa fue la razón por la que pisé la pregunta.

Me imagino que otros sistemas operativos podrían implementar una versión diferente de adduser.

mariotti
fuente