Solución:
En primer lugar, los respectivos fragmentos de la página de manual 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 interfaces más amigables para las herramientas de bajo nivel como los programas useradd, groupadd y usermod, eligiendo por defecto 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 normalmente deberían utilizar adduser (8) en su lugar.
Investigación adicional de adduser
revela 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
– utilizado para agregar / cambiar las contraseñas de los usuarios. -
gpasswd
– utilizado para agregar / cambiar contraseñas de grupo. -
usermod
– utilizado para cambiar varios parámetros asociados al usuario. -
chfn
– utilizado para agregar / cambiar información adicional almacenada en un usuario. -
chage
– utilizado para cambiar la información de caducidad de la contraseña. -
edquota
: se utiliza para cambiar las cuotas de uso del disco.
Una corrida básica del adduser
comando es el siguiente:
adduser username
Este simple comando hará varias cosas:
- Crea el usuario nombrado
username
. - Cree el directorio de inicio del usuario (el predeterminado es
/home/username
y copia los archivos de/etc/skel
en ello. - Cree un grupo con el mismo nombre que el usuario y coloque al usuario en él.
- Solicitar una contraseña para el usuario.
- Solicitar información adicional sobre el usuario.
los useradd
La mayor parte del programa puede lograr la mayor parte de esto, sin embargo, no lo hace de forma 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 adduser
asegura que los UID y GID creados se ajustan a la política de Debian. Creando usuarios normales con useradd
parece estar bien, siempre que UID_MIN
/UID_MAX
en /etc/login.defs
coincide con la política de Debian. Sin embargo, lo que es un problema es que Debian especifica un rango particular para los UID de usuario del sistema que solo parece ser compatible con /etc/adduser.conf
, tan ingenuamente agregando un usuario del sistema con useradd
y no especificar un UID / GUID en el rango correcto deja la posibilidad de problemas graves.
Otro uso común de adduser
es simplificar el proceso de agregar un usuario a un grupo. Aquí, el siguiente comando:
adduser username newgroup
es equivalente a lo siguiente usermod
mando:
usermod -a -G newgroup username
El principal inconveniente de usermod
en este caso es que olvidar pasar la opción de agregar (es decir: -a
) terminaría eliminando al usuario de todos los grupos antes de agregarlo a “nuevo grupo” (es decir: -G
solo significa “reemplazar con”).
Una desventaja de usar adduser
Sin embargo, aquí es que solo puede especificar un grupo a la vez.
Una diferencia significativa con la que me encontré (y no vi en una respuesta aquí), es la implicaciones de crear un usuario del sistema.
useradd --system
parece implicar --shell /bin/bash
, tiempo adduser --system
implica --shell /usr/sbin/nologin
, que es lo que quería.
Entonces, si no quiero ni un shell ni un directorio de inicio, podría usar useradd como esto
useradd --system --shell /usr/sbin/nologin foo
Lo que conduce, por ejemplo, a la siguiente entrada en /etc/passwd
foo:x:994:991::/home/foo:/usr/sbin/nologin
O usar agregar usuario como esto
adduser --system --no-create-home foo
Lo que conduce, por ejemplo, a la siguiente entrada en /etc/passwd
foo:x:110:65534::/home/foo:/usr/sbin/nologin
También, adduser
no crea un grupo (el usuario 110 está en el grupo 65534, también conocido como sin grupo). La respuesta aceptada también menciona riesgos con respecto a (G) UID, así que definitivamente me quedaré con agregar usuario.
Fuente: probado en el sistema operativo Raspberry Pi (basado en Debian Buster).
los agregar usuario El comando de forma predeterminada también crea un directorio / home / user para los usuarios del sistema, lo que no puede hacer con el useradd mando. useradd solo agrega directorios de inicio para usuarios normales, no para usuarios del sistema.