¿Cuál es la diferencia entre los comandos adduser
y useradd
en Ubuntu?
¿Cuál es la diferencia entre los comandos adduser
y useradd
en Ubuntu?
Respuestas:
useradd
es binario nativo compilado con el sistema. Pero,adduser
es un script perl que usauseradd
binarios en el back-end.
adduser
es más fácil de usar e interactivo que su back-enduseradd
. No hay diferencia en las características proporcionadas.
-m
opción creará el directorio de inicio.
adduser(8)
es más fácil de usar y crea y configura un usuario de forma predeterminada de la manera que espera. Y useradd(8)
solo haga lo que le pida, así que quiere que se cree un directorio de inicio, debe decirle que lo cree por usted.
Utilice siempreadduser
(y deluser
cuando elimine usuarios) cuando cree nuevos usuarios desde la línea de comandos. (Si está escribiendo un script, especialmente si apunta a la portabilidad, es posible que desee utilizar las utilidades de bajo nivel en su lugar, y adduser
/ o deluser
no esté disponible en todas las distribuciones, por ejemplo, en SuSE).
Los comandos useradd
, userdel
y usermod
son utilidades de bajo nivel que están allí por razones históricas, mientras que adduser/deluser
Do The Right Thing ™. (Recuerdo cuál usar al pensar que user*
viene después adduser/deluser
en el alfabeto y, por lo tanto, es "peor").
De acuerdo con las respectivas páginas de manual (en Ubuntu 12.04 Precise Pangolin, es decir, un sistema derivado de Debian).
adduser
dice:(Énfasis añadido.)
adduser
yaddgroup
agregue usuarios y grupos al sistema de acuerdo con las opciones de 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 niveluseradd
,groupadd
como losusermod
programas , y eligen de manera predeterminada los valores UID y GID conformes con la política de Debian, crean un directorio de inicio con configuración esquelética, ejecutan un script personalizado y otras características.adduser
yaddgroup
se puede ejecutar en uno de los cinco modos:
useradd
dice:
useradd
es una utilidad de bajo nivel para agregar usuarios. En Debian, los administradores deberían usarloadduser(8)
en su lugar.
Ver también: ¿Cuál es la diferencia entre "adduser" y "useradd"? (en SuperUser)
adduser
": prefiero las secuencias de comandos automatizadas useradd
porque siempre está ahí, no es interactivo y no es específico de la distribución .
adduser
en openSUSE, y no es allí (13.2).
locate adduser
un sistema SuSE 11 en el trabajo, descubrí que había una página de adduser
manual, pero no binaria (ni una página de deluser
manual ni un comando).
/usr/sbin/adduser -> useradd
adduser
: agregar usuario con perfil completo e información (pase, cuota, permiso, etc.)
useradd
: agregar usuario solo con su nombre (si desea agregar un usuario temporal con solo un nombre, no se requiere otra información)
Otro par de diferencias, que conducen a escenarios específicos donde useradd podría ser preferible.
En algunas distribuciones más nuevas, incluida Ubuntu 14.4, adduser solicitará información como contraseña y "gecos" (datos para el comando de dedo). Esto significa que puede ser menos adecuado para llamar desde un script (crédito: ya mencionado en un comentario de Wernight).
Las indicaciones se pueden suprimir pasando argumentos nulos:
adduser --disabled-password --gecos "" USER
useradd
le permite pasar múltiples grupos adicionales para agregar un usuario mediante la -G
opción. adduser
parece requerir que llame al comando una vez para que cada grupo agregue.
adduser
es más amigable ya que configura las carpetas de inicio de la cuenta y otras configuraciones (por ejemplo, carga automáticamente las estadísticas del sistema y las notificaciones al iniciar sesión), mientras que useradd
solo crea el usuario.
La diferencia básica es que "adduser" creará un directorio de inicio y agregará archivos de esqueleto a ese directorio donde "useradd" no creará ningún directorio de inicio y archivos de esqueleto.
Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
# ll /home/
total 20
drwxr-xr-x 5 root root 4096 Oct 26 15:52 ./
drwxr-xr-x 22 root root 4096 Oct 26 15:47 ../
drwx------ 8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x 3 root root 4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x 2 try try 4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#
También señalaré que adduser
no siempre tiene la -M
opción y tampoco respeta la --system
bandera que dice específicamente :
Tenga en cuenta que useradd no creará un directorio de inicio para dicho usuario, independientemente de la configuración predeterminada en /etc/login.defs (CREATE_HOME). Debe especificar las opciones -m si desea que se cree un directorio de inicio para una cuenta del sistema.
Si está intentando crear un usuario del sistema sin un directorio de inicio, úselo useradd --system -M
.