Está en la página 1de 12

Crear Usuarios

NOTA:
Crear usuario # useradd juana
Asignarle contraseña. # passwd juana
Crear directorio de usuario # mkdir /home/juana

Ponerle dueño y grupo: # chown juana:juana -R /home/juana

Asignarle permisos: # chmod 755 -R /home/juana

Asignarle el directorio de usuario al nuevo usuario:


# usermod -d /home/juana juana

Asegurarte de tener bash como predeterminado para tu nuevo usuario.


Para ello editar el fichero /etc/passwd:
# nano /etc/passwd
y modificar si es necesario la línea:
juana:x:1002:1002::/home/juana:/bin/sh
por:
juana:x:1002:1002::/home/juana:/bin/bash

También se puede hacer casi todo en una sola sentencia, usando las diferentes opciones
de useradd. Ejemplo:

sudo useradd -g profesores -d /home/pedro -m -s /bin/bash -p


pwdPedro pedro

-g profesores --> va a pertenecer al grupo profesores


(EL GRUPO DEBE EXISTIR YA)
-d /home/pedro --> crea su directorio personal
/home/pedro
-m con esta opción crea el directorio anterior
-s /bin/bash --> le asigna la shell /bin/bash
-p pwdPedro --> password pwdPedro
pedro --> nombre del usuario

NOTA: la password no la coje. Habrá que establecerla en una sentencia posterior


con: passwd pedro

Con el comando adduser el sistema crea el usuario con todos los valores anteriores
por defecto
Ejemplo adduser prueba2
Crea el usuario prueba2, crea el directorio /home/prueba2, crea el grupo prueba2 y
pide una password y algunos otros datos como nombre completo, teléfonos, etc.
Eliminar Usuarios
Comandos userdel y deluser para eliminar usuarios y de usermod para modificar aspectos de los
usuarios.

deluser,  elimina usuarios del sistema acorde a las configuraciones que se


encuentren en /etc/deluser.conf y las opciones que se le pasen al comando al
momento de ejecutarlo.
por defecto deluser eliminará un usuario sin eliminar ninguno de los
archivos del ususario,
Opciones
–remove-home para eliminar el directorio home y los archivos de correo del
usuario
–remove-all-files lo que eliminará todos los archivos que pertenecen al usuario.
Usando –remove-all-files ya no es necesario que usemos la opción –remove-
home puesto que ya va incluida.
–backup nos permite hacer un respaldo de los archivos del usuarios que queremos eliminar. Creará un archivo

con el nombre del usuario que estamos eliminando, la forma del archivo que se creará será de la siguiente

forma usuario.tar.(gz|bz2) y será guardado en el directorio que se le pase a la opción –backup-to, por defecto el

archivo se guardará en el directorio en el que nos encontremos actualmente

La forma de usar este comando es como se muestra a continuación.

root@Ubuntu:~# deluser –remove-all-files –backup prueba3


Buscando archivos para respaldar/eliminar…

Haciendo copia de seguridad en . de los archivos que serán borrados…

backup_name = ./prueba3.tar/bin/tar: Eliminando la `/’ inicial de los nombres

Removiendo archivos …

Removiendo usuario prueba3…

Terminado.

userdel  es considerado una utilidad de bajo nivel, y se recomienda usar deluser en lugar de éste comando.

Opciones
-f ó –force que que forzará la eliminación del usuario aunque éste se encuentre logueado, también eliminará el
directorio home y los correos, aunque otros usuarios usen el mismo home y el mismo spool de correo, ésta opción no

se recomienda dado que puede dejar el sistema con inconsistencias.

-r ó –remove que hará que se eliminen el directorio home y el spool de correo, si no se hace uso de la opción -f
el usuario no podrá ser eliminado si se encuentra logueado en el sistema.

A continuación se muestra cómo usarlo.

root@Ubuntu:~# userdel -r prueba2


root@Ubuntu:~#

Modificar Usuarios

Id <NombreUsuario>
Nos da información del UID del usuario y de los grupos a los que pertenece

id periko

Listar todos los usuarios del sistema


awk -F':' '{ print $1}' /etc/passwd ó

$ compgen -u

Listar todos los usuarios de un grupo (menos el owner del grupo)


getent group sudo | cut -d: -f4

usermod 
Nos permite modificar aspectos de las cuentas de los usuarios del sistema,
como su home, poner tiempos de expiración a las cuentas, entre otras que
veremos a continuación.

Opciones
-d ó –home nos creará un nuevo directorio home para el usuario, y si usamos
la opción -m conjuntamente se moverán todos los archivos del home viejo al
nuevo, de igual forma se creará el directorio en caso de no existir.  
sudo usermod -d /home/prueba2b -m prueba2
-e ó –expiredate  con la que especificamos  la fecha en la que la cuenta
expirará, la fecha se pasa con el formato AAAA-MM-DD. 

-f ó –inactive especifica la cantidad de días que  se esperará el sistema hasta


desactivarla por completo ésta opción recibe un valor entero y que por defecto
es -1, si le pasamos un valor 0, la cuenta se desactivará inmediatamente
cuando expire la misma.

-g ó –gid cambiar el ID del grupo inicial del usuario seguida de un GID de un


grupo existente

-G ó –groups hacer que el usuario pertenezca a otros grupos seguida de la lista


de grupos alternos a los que pertenece o queremos que pertenezca el usuario.
sudo usermod -G prueba22,prueba22b,prueba22c prueba2

-l ó –login, modifica
el login del usuario, es decir su nombre de usuario. El
nombre de la carpeta home del usuario cambiará también para reflejar el
cambio.

-L ó –lock desactiva un password.

-s ó –shell modifica el shell de inicio del usuario.

-u ó –uid. modifica el id del usuario

Ejemplos:

root@Ubuntu:~# usermod -l nuevoLogin -s /bin/sh prueba


root@Ubuntu:~# su – nuevoLogin
$ pwd
/home/prueba
$ exit
root@Ubuntu:~# usermod -d /home/nuevoLogin -m nuevoLogin
root@Ubuntu:~# su – nuevoLogin
$ pwd
/home/nuevoLogin
$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .profile
$ exit
root@Ubuntu:~# usermod -l usuario -d /home/usuario -m -s /bin/bash
nuevoLogin
root@Ubuntu:~# su – usuario
usuario@Ubuntu:~$ pwd
/home/usuario
usuario@Ubuntu:~$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .profile
usuario@Ubuntu:~$ exit
logout
root@Ubuntu:~#

Crear Grupos
Crear grupo # addgroup <nombreGrupo>

# addgroup admin_administracion
La opción .-force -badname permite establecer un nombre que no cumpla con
la sintaxis establecida.

Añadir un usuario (existente o no) a un grupo existente


# adduser <nombreusuario> <nombregrupo>

# adduser admin1 admin_administracion

El comando gpasswd también es muy útil, para añadir usuarios a grupos:

gpasswd [opcion] GRUPO

opción -a, añadimos un usuario al grupo: gpasswd -a usuario1 grupo1


-d, eliminamos un usuario del grupo: gpasswd -d usuario1 grupo1
-r, elimina la contraseña del grupo: gpasswd -r grupo1
-M lista de miembros del grupo: gpasswd -M usuario1, usuario2 grupo1
-A añadir administrador del grupo: gpasswd -A usuario1 grupo1

Quitar un usuario de un grupo existente


# deluser <nombreusuario> <nombregrupo>

# deluser admin1 admin_administracion

Modificar Grupos
Modificar nombre del grupo
# groupmod -n <nuevoNombreGrupo> <NombreGrupo>

Modificar gid del grupo


# groupmod -g <nuevoGidGrupo> <NombreGrupo>

getent group <nombreGrupo> Nos da información de ese grupo

Borrar Grupos
Borrar grupo # delgroup <nombreGrupo>

# delgroup admin

Asignar grupo a un directorio


/home/jose/PRUEBA/Administracion/admin

Ponerle dueño y grupo: # chown <usuario>:<grupo> -R  <directorio>

# chown root:admin_administracion -R  /home/jose/PRUEBA/Administracion/admin

También podemos cambiar el grupo de un archivo o directorio con:


# chgrp <nuevoGrupo> <directorio>

Asignarle permisos: # chmod <permisos> -R <directorio>

# chmod 775 -R /home/jose/PRUEBA/Administracion/admin

Información de usuario
whoami --> muestra el usuario
id --> muestra UID y GID's del usuario conectado
id <usuario> --> muestra UID y GID's del usuario indicado
opciones
-u <usuario> --> del usuario indicado
-g <usuario> --> del grupo del usuario indicado

Para ver el estatus de una cuenta de usuario:


sudo chage -l <usuario>

users nos indica qué usuarios se encuentran validados en el sistema.

groups nos indica los grupos a los que pertenece un usuario:

Activar/Desactivar cuenta de usuario


Para desactivar una cuenta de usuario temporalmente (Locked):
sudo passwd -l <usuario>

Para activar una cuenta de usuario previamente desactivada (Unlocked):


sudo passwd -u <usuario>

Algunos ficheros relacionados con cuentas de


usuario:
/etc/passwd: contiene información sobre cada usuario: ID, grupo principal, descripción, directorio de inicio,
shell, etc. También contiene el password encriptado, salvo que se usen shadow passwords.

Por ejemplo:

root:x:0:0:root:/root:/bin/bash
sergio:x:501:500:Sergio González:/home/sergio:/bin/bash
La información de cada usuario está dividida en 7 campos delimitados cada uno por ':' dos
puntos.

/etc/passwd

Campo 1 Es el nombre del usuario, identificador de inicio de sesión (login). Tiene que ser único.
Campo 2 La 'x' indica la contraseña encriptada del usuario, además también indica que se está
haciendo uso del archivo /etc/shadow, si no se hace uso de este archivo, este campo se
vería algo así como: 'ghy675gjuXCc12r5gt78uuu6R'.
Campo 3 Número de identificación del usuario (UID). Tiene que ser único. 0 para root,
generalmente las cuentas o usuarios especiales se numeran del 1 al 100 y las de usuario
normal del 101 en delante, en las distribuciones mas recientes esta numeración
comienza a partir del 500.
Campo 4 Numeración de identificación del grupo (GID). El que aparece es el número de grupo
principal del usuario, pero puede pertenecer a otros, esto se configura en /etc/groups.
Campo 5 Comentarios o el nombre completo del usuario.
Campo 6 Directorio de trabajo (Home) donde se sitúa al usuario después del inicio de sesión.
Campo 7 Shell que va a utilizar el usuario de forma predeterminada.

/etc/shadow: contiene los passwords encriptados de los usuarios cuando se emplean shadow passwords.

El archivo /etc/shadow contiene una línea para cada usuario, similar a las siguientes:

root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1::
sergio:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1::

La información de cada usuario está dividida en 9 campos delimitados cada uno por ':' dos
puntos.

/etc/shadow

Campo 1 Nombre de la cuenta del usuario.


Campo 2 Contraseña cifrada o encriptada, un '*' indica cuenta de 'nologin'.
Campo 3 Días transcurridos desde el 1/ene/1970 hasta la fecha en que la contraseña fue
cambiada por última vez.
Campo 4 Número de días que deben transcurrir hasta que la contraseña se pueda volver a
cambiar.
Campo 5 Número de días tras los cuales hay que cambiar la contraseña. (-1 significa nunca). A
partir de este dato se obtiene la fecha de expiración de la contraseña.
Campo 6 Número de días antes de la expiración de la contraseña en que se le avisará al usuario al
inicio de la sesión.
Campo 7 Días después de la expiración en que la contraseña se inhabilitara, si es que no se
cambio.
Campo 8 Fecha de caducidad de la cuenta. Se expresa en días transcurridos desde el
1/Enero/1970 (epoch).
Campo 9 Reservado.

/etc/group: contiene los miembros de cada grupo, excepto para el grupo principal, que aparece en /etc/passwd.

contiene una línea para cada usuario con tres o cuatro campos por usuario:

root:x:0:root
ana:x:501:
sergio:x:502:ventas,supervisores,produccion
cristina:x:503:ventas,sergio

 El campo 1 indica el usuario.


 El campo 2 'x' indica la contraseña del grupo, que no existe, si hubiera se mostraría un
'hash' encriptado.
 El campo 3 es el Group ID (GID) o identificación del grupo.
 El campo 4 es opcional e indica la lista de grupos a los que pertenece el usuario

Actualmente al crear al usuario con useradd se crea también automáticamente su grupo


principal de trabajo GID, con el mismo nombre del usuario. Es decir, si se añade el usuario
'sergio' también se crea el /etc/group el grupo 'sergio'. 

/etc/login.defs: En el archivo de configuración /etc/login.defs están definidas


las variables que controlan los aspectos de la creación de usuarios y de los
campos de shadow usadas por defecto. Algunos de los aspectos que controlan
estas variables son:

 Número máximo de días que una contraseña es válida PASS_MAX_DAYS


 El número mínimo de caracteres en la contraseña PASS_MIN_LEN
 Valor mínimo para usuarios normales cuando se usa useradd UID_MIN
 El valor umask por defecto UMASK
 Si el comando useradd debe crear el directorio home por defecto CREATE_HOME

Basta con leer este archivo para conocer el resto de las variables que son autodescriptivas y
ajustarlas al gusto. Recúerdese que se usaran principalmente al momento de crear o modificar
usuarios con los comandosuseradd y usermod

/etc/skel: directorio que contiene el contenido del directorio de los nuevos usuarios.

Archivos de configuración
Los usuarios normales y root en sus directorios de inicio tienen varios archivos que comienzan
con "." es decir están ocultos. Varían mucho dependiendo de la distribución de Linux que se
tenga, pero seguramente se encontrarán los siguientes o similares:

#> ls -la
drwx------ 2 ana ana 4096 jul 9 09:54 .
drwxr-xr-x 7 root root 4096 jul 9 09:54 ..
-rw-r--r-- 1 ana ana 24 jul 9 09:54 .bash_logout
-rw-r--r-- 1 ana ana 191 jul 9 09:54 .bash_profile
-rw-r--r-- 1 ana ana 124 jul 9 09:54 .bashrc

.bash_profile aquí podremos indicar alias, variables, configuración del entorno, etc. que
deseamos iniciar al principio de la sesión.

.bash_logout aquí podremos indicar acciones, programas, scripts, etc., que deseemos ejecutar al
salirnos de la sesión.

.bashrc es igual que .bash_profile, se ejecuta al principio de la sesión, tradicionalmente en este


archivo se indican los programas o scripts a ejecutar, a diferencia de .bash_profile que configura
el entorno.

Lo anterior aplica para terminales de texto 100%.

Si deseamos configurar archivos de inicio o de salida de la sesión gráfica entonces, en este caso,
hay que buscar en el menú del ambiente gráfico algún programa gráfico que permita manipular
que programas se deben arrancar al iniciar la sesión en modo gráfico. En la mayoría de las
distribuciones existe un programa llamado "sesiones" o "sessions", generalmente está ubicado
dentro del menú de preferencias. En este programa es posible establecer programas o scripts
que arranquen junto con el ambiente gráfico, sería equivalente a manipular 'bashrc'.

Además Linux permite que el usuario decida qué tipo de entorno Xwindow a utilizar, ya sea
algún entorno de escritorio como KDE o Gnome o algún manejador de ventanas como Xfce o
Twm. Dentro del Home del usuario, se creará un directorio o archivo escondido "." , por ejemplo
'.gnome' o '.kde' donde vendrá la configuración personalizada del usuario para ese entorno.
Dentro de este directorio suele haber varios directorios y archivos de configuración. Estos son
sumamente variados dependiendo de la distribución y del entorno. No es recomendable
modificar manualmente (aunque es perfectamente posible) estos archivos, es mucho mas
sencillo modificar vía las interfases gráficas que permiten cambiar el fondo, protector de
pantalla, estilos de ventanas, tamaños de letras, etc.
RESUMEN
Comandos de administración y control de usuarios

adduser Ver useradd


chage Permite cambiar o establecer parámetros de las fechas de control de la
contraseña.
chpasswd Actualiza o establece contraseñas en modo batch, múltiples usuarios a la vez.
(se usa junto con newusers)
id Muestra la identidad del usuario (UID) y los grupos a los que pertence.
gpasswd Administra las contraseñas de grupos (/etc/group y /etc/gshadow).
groupadd Añade grupos al sistema (/etc/group).
groupdel Elimina grupos del sistema.
groupmod Modifica grupos del sistema.
groups Muestra los grupos a los que pertence el usuario.
newusers Actualiza o crea usuarios en modo batch, múltiples usuarios a la vez. (se usa
junto chpasswd)
pwconv Establece la protección shadow (/etc/shadow) al archivo /etc/passwd.
pwunconv Elimina la protección shadow (/etc/shadow) al archivo /etc/passwd.
useradd Añade usuarios al sistema (/etc/passwd).
userdel Elimina usuarios del sistema.
usermod Modifica usuarios.

Archivos de administración y control de usuarios

.bash_logout Se ejecuta cuando el usuario abandona la sesión.


.bash_profile Se ejecuta cuando el usuario inicia la sesión.
.bashrc Se ejecuta cuando el usuario inicia la sesión.
/etc/group Usuarios y sus grupos.
/etc/gshadow Contraseñas encriptadas de los grupos.
/etc/login.defs Variables que controlan los aspectos de la creación de usuarios.
/etc/passwd Usuarios del sistema.
/etc/shadow Contraseñas encriptadas y control de fechas de usuarios del sistema.

 
Caso practico
Parte 01 – Creando cuentas de usuario

Se desea configurar un sistema para que cuente con una serie de cuentas de usuario que
pertenecerán a los grupos que se muestran en la tabla que aparece a continuación.

Usuario Grupo
alfredoff contabilidad, educatica
marinapg ventas, contabilidad, educatica
ramonam ventas, educatica
rosarm contabilidad, educatica

También se desea que todas las cuentas de usuario, según se creen en el sistema,
cuenten con un directorio llamado educatica y otro llamado proyectos en su directorio
personal de forma automática, para ello deberemos modificar el directorio skel, ubicado
en la siguiente ruta “/etc/skel.

También podría gustarte