En esta pequeña guía mostramos como crear un usuario en linux:
En linux hay un usuario predefinido, tiene UID (ID de usuario) numero “0” y es el usuario “root” o “raiz” (aunque se ha traducido siempre se llama root, hay gente que se refiere a el de esta manera), este usuario es el “superusuario” del sistema. Con el se tiene acceso prácticamente a todo. A la hora de ejecutar aplicaciones algunas nos pedirán permisos de “root”. Para veríficar si somo usuario “root” debemos fijarnos en una cosa (en la consola), el promp. Un usuario normal se muestra con “$”, sin embargo root, muestra “#”.
Ejemplo de root:
root@localhost:~#
Ejemplo de usuario
user@localhost:~$
Desde este usuario vamos a poder realizar modificaciones en cualquier directorio aunque no tengamos permisos, cambiar la password de cualquier usuario, crear usuarios, eliminar usuarios o modificarlos, etc.
Todos los usuarios tiene un directorio “home”, este directorio tiene permisos para que el usuario actual lea, escriba y ejecute. Es el directorio donde se crearán todos los ficheros de configuración del usuario y donde el usuario guardará sus ficheros. En un entorno grafico, tambien se alojan directorios como “imagenes”, “escritorio”, etc. Se puede saber de muchas formas cual es el directorio home del usuario actual, dos de ellas son ejecutar: “echo $HOME” o “echo ~”, que como se puede ver en las imágenes nos muestra cual es el directorio:
Para dirigirnos a este directorio con nuestro usuario solo debemos ejecutar “cd ~” o “cd $HOME”.
Si queremos acceder a un directorio home de otro usuario por defecto no podremos a no ser que seamos root ya que mediante permisos suele estar limitado.
Para crear un usuario se utiliza el comando “useradd”, este tiene que ejecutarse desde el usuario root.
Por lo que para crear un usuario llamado “juanito” tendríamos que ejecutar:
“useradd -m -s /bin/bash juanito”, se puede ampliar con las siguientes opciones:
root@portatil:~# useradd --help
Modo de uso: useradd [opciones] USUARIO
useradd -D
useradd -D [opciones]
Opciones:
-b, --base-dir DIR_BASE directorio base para el directorio personal
de la nueva cuenta
-c, --comment COMENTARIO campo GECOS de la nueva cuenta
-d, --home-dir DIR_PERSONAL directorio personal de la nueva cuenta
-D, --defaults imprime o cambia la configuración
predeterminada de useradd
-e, --expiredate FECHA_CADUCIDAD fecha de caducidad de la nueva cuenta
-f, --inactive INACTIVO periodo de inactividad de la contraseña
de la nueva cuenta
-g, --gid GRUPO nombre o identificador del grupo primario de
la nueva cuenta
-G, --groups GRUPOS lista de grupos suplementarios de la nueva
cuenta
-h, --help muestra este mensaje de ayuda y termina
-k, --skel DIR_SKEL utiliza este directorio «skeleton» alternativo
-K, --key CLAVE=VALOR sobrescribe los valores predeterminados de
«/etc/login.defs»
-l, --no-log-init no añade el usuario a las bases de datos de
lastlog y faillog
-m, --create-home crea el directorio personal del usuario
-M, --no-create-home no crea el directorio personal del usuario
-N, --no-user-group no crea un grupo con el mismo nombre que el
usuario
-o, --non-unique permite crear usuarios con identificadores
(UID) duplicados (no únicos)
-p, --password CONTRASEÑA contraseña cifrada de la nueva cuenta
-r, --system crea una cuenta del sistema
-R, --root CHROOT_DIR directorio en el que hacer chroot
-s, --shell CONSOLA consola de acceso de la nueva cuenta
-u, --uid UID identificador del usuario de la nueva cuenta
-U, --user-group crea un grupo con el mismo nombre que el
usuario
-Z, --selinux-user USUARIO_SE utiliza el usuario indicado para el usuario
de SELinux
--extrausers Use the extra users database
Un aspecto interesante de las opciones anteriores es la opción -s path_de_la_shell (por ejemplo -s /bin/bash), esta opción cambia la shell utilizada por el usuario. Otra opción interesante es -d /path_del_usuario esta opción definirá la shell del usuario, por defecto será /home/NOMBRE_DE_USUARIO. Por ultimo, una opción importante es “-o” que usada junto con “-u 0” hace que el nuevo usuario sea equivalente a un alias de root pero con su propia password. Otra opción interesante es la opción “ –expiredate FECHA_CADUCIDAD”, ya que con esta opción se pueden crear usuarios temporales.
Una vez creado el usuario debemos configurar su password, esto se puede hacer con el usuario root con el comando “passwd USUARIO” donde “USUARIO” debe ser sustituido por el usuario a modificar. Si no se especifica usuario se cambiará la password del usuario actual (hasta root). Es decir, en el caso de ejecutarse sin usuario como parámetro y no ser un usuario root, se ejecutará el cambio sin problema en el usuario actual.
Si queremos modificar podemos utilizar el comando usermod con los mismos parametros que usariamos en useradd. Por ejemplo si queremos cambiar el directorio de un usuario llamado foo por /usr/local/share/foo solamente deberíamos ejecutar: usermod -m /usr/local/share/foo foo y el usuario quedaría cambiado y tendrían una ruta nueva.
Y por ultimo si queremos eliminar el usuario: Este caso es muy sencillo, solamente debemos ejecutar sudo userdel -r USUARIO donde “USUARIO” es el nombre del usuario a eliminar. Con esta sentencia se elimina el usuario en cuestión y su directorio home.