¿Qué hace adduser que useradd no?


71

Además de los más extendidos useradd, los sistemas basados ​​en Debian también contienen un addusercomando adicional que proporciona una interfaz de nivel superior para agregar usuarios y algunas tareas relacionadas. Hay varias preguntas / respuestas en otros sitios de SE que detallan las diferencias básicas entre estos comandos, por ejemplo:

La mayoría de las respuestas dicen esencialmente que adduserproporciona una interfaz más agradable para agregar usuarios de forma interactiva, pero no da muchos detalles sobre lo que sucede cuando adduserse ejecuta sin comparación useradd. Entonces:

  1. ¿Qué hace addusereso que useraddno?
  2. ¿Qué comandos necesito usar para producir resultados equivalentes?

Respuestas:


79

En primer lugar, los fragmentos de página de manual respectivos resaltan las diferencias entre los dos comandos y dan alguna indicación de lo que está sucediendo. Para adduser:

adduser y addgroup agregan usuarios y grupos al sistema de acuerdo con las opciones de la línea de comandos y la información de configuración en /etc/adduser.conf. Son los front-end más amigables para las herramientas de bajo nivel como useradd, groupadd y usermod, eligiendo por defecto los valores UID y GID conformes a la política de Debian, creando un directorio de inicio con configuración esquelética, ejecutando un script personalizado y otras características.

Entonces para useradd:

useradd es una utilidad de bajo nivel para agregar usuarios. En Debian, los administradores generalmente deberían usar adduser (8) en su lugar.

La investigación adicional de adduserrevela que es un script perl que proporciona una interfaz de alto nivel y, por lo tanto, ofrece algunas de las funciones de los siguientes comandos:

  • useradd
  • groupadd
  • passwd - Se utiliza para agregar / cambiar las contraseñas de los usuarios.
  • gpasswd - Se utiliza para agregar / cambiar las contraseñas de grupo.
  • usermod - Se utiliza para cambiar varios parámetros asociados al usuario.
  • chfn - Se utiliza para agregar / cambiar información adicional contenida en un usuario.
  • chage - Se utiliza para cambiar la información de caducidad de la contraseña.
  • edquota - Se utiliza para cambiar las cuotas de uso del disco.

Una ejecución básica del addusercomando es la siguiente:

adduser username

Este simple comando hará varias cosas:

  1. Crea el usuario nombrado username.
  2. Cree el directorio de inicio del usuario (el valor predeterminado es /home/usernamey copie los archivos /etc/skelen él.
  3. Cree un grupo con el mismo nombre que el usuario y colóquelo en él.
  4. Solicitar una contraseña para el usuario.
  5. Solicitar información adicional sobre el usuario.

El useraddprograma puede lograr la mayor parte de esto, sin embargo, no lo hace de manera predeterminada y necesita opciones adicionales. Parte de la información requiere más comandos:

useradd -m -U username
passwd username
chfn username

Tenga en cuenta que addusergarantiza que los UID y GID creados cumplan con la política de Debian . Creación de los usuarios normales con useraddparece estar bien, siempre UID_MIN/ UID_MAXen /etc/login.defscoincide con la política de Debian. Sin embargo, lo que es un problema es que Debian especifica un rango particular para los UID de usuarios del sistema que solo parece ser compatible /etc/adduser.conf, por lo que agregar ingenuamente un usuario del sistema useraddy no especificar un UID / GUID en el rango correcto deja el potencial de problemas serios.

Otro uso común para adduseres simplificar el proceso de agregar un usuario a un grupo. Aquí, el siguiente comando:

adduser username newgroup

reemplaza un usermodcomando más complejo que requiere que se especifiquen los grupos de los que el usuario ya es miembro (y que desea que el usuario siga siendo miembro):

usermod -G all,other,groups,user,is,in,newgroup

Sin adduserembargo, una desventaja de usar aquí es que solo puede especificar un grupo a la vez.


¡Esto es genial! Ni siquiera sabía que era una pregunta. ¿Toma contraseñas hash como useradd? Este es un muy buen trabajo, por cierto.
mikeserv

Sin embargo, no sé si estoy completamente de acuerdo con la declaración "los administradores deberían ..." ... Personalmente, creo que el administrador probablemente debería estar armando los suyos de adduseracuerdo con una política de todo el sistema, pero eso es solo un sillón quarterbacking en el mejor de los casos.
mikeserv

@mikeserv, no, no hay contraseñas hash. Sin embargo, hay otro programa que debe conocer chpasswd: puede aceptar contraseñas hash stdin. Esperaré hasta mañana antes de actualizar esa otra respuesta, aunque creo.
Graeme

buen post. Para mí un poco demasiados detalles. Lo que más extraño es que adduserfue creado originalmente para los administradores de servidores que con frecuencia necesitaban crear / modificar / limitar usuarios reales como en un servidor de correo electrónico en la universidad. Con adduserusted puede automatizar el proceso. Esto cambió un poco durante los años, por lo que hoy en día useraddpuede ser difícil para muchos administradores y para ellos se adduserha convertido en la herramienta de elección.

En mi Ubuntu 16.04, -U/ --user-groupparece ser el predeterminado.
Franklin Yu

2

El comando adduser por defecto también crea un directorio / home / user para usuarios del sistema, lo que no puede hacer con el comando useradd . useradd solo agrega directorios de inicio para usuarios normales, no usuarios del sistema.


1

El administrador del sistema puede hacer cualquier cosa con useradd que se pueda hacer con adduser. Se indicó aquí que no puede crear un directorio / home / user para usuarios del sistema con useradd, y absolutamente puede, modificando los archivos contenidos en / etc / skel. / etc / skel contiene el conjunto de archivos utilizados inicialmente para llenar el directorio de inicio de un nuevo usuario.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.