Gestión de Usuarios y Procesos
En GNU/Linux los usuarios se guardan en archivos, que pueden ser editables por el
usuario root o administradores.
Rutas de los archivos:
/etc/passwd
- Consta de 7 campos: Nombre, Contraseña, UID, GID, Info, Carpeta y Shell.
/etc/group
- Consta de 4 campos: Nombre, Contraseña, GID y Usuarios del grupo.
/etc/shadow
- Consta de 8 campos: Nombre, Contraseña, Ultimo Cambio, Mínimo, Máximo,
Aviso, Inactivo y Caducidad.
Tipos de usuarios
- Root: control absoluto.
- Administrador: privilegios elevados.
- Común: permisos limitados.
Prompt
- Superusuario: #
- Usuario común: $
Se puede editar modificando la variable PS1.
Superusuario (Sudo)
Sudo proviene de “Superuser do”.
El comando sudo puede realizar tareas restringidas para usuarios comunes.
Usar superusuario: sudo su
Cambiar contraseña root: sudo passwd root
Ejecutar como otro usuario: sudo –u usuario comando_de_usuario, ejemplo: sudo -u
usuario2 ls.
En /etc/sudoers están los usuarios y grupos que pueden usar sudo.
Entrar con otros usuarios: su – nombreUsuario
Salir de una sesion: exit
Añadir usuarios al sistema:
useradd [-g grupo] [-G grupo[,grupo…]] [-d directorioHome [-m]] [-p
contraseñaEncriptada] [-s shell] Usuario
- g: nombre o identificador de grupo principal.
- G: asignación a grupos secundarios/suplementarios.
- d: directorio de trabajo del usuario. Si no se específica, se toma por defecto
/home/loginUser.
- m: crea el directorio personal si no existe y copia los archivos de /etc/skel.
- p: contraseña del usuario encriptada.
- s: establecer el intérprete de mandatos del usuario. Por defecto es /bin/bash.
Modificar características de usuario:
usermod [opciones] Usuario
- c: comentario.
- g: grupo.
- G: grupo[,grupo…].
- d: directorioHome [-m].
- p: contraseñaEncriptada.
- e: fechaExpiracion.
- f: días.
- l: nuevoLogin.
- L: bloquearCuenta.
- U: desbloquearCuenta.
- s: shell.
Modificar el quinto campo de /etc/passwd
chfn [options] loginUser
Eliminar usuario
userdel [-r] loginUser
-r borra la carpeta home también.
Añadir contraseña
passwd loginUser
Obtener contraseñas encriptadas
openssl passwd [options] contraseña_a_encriptar
- 1: encripta en MD5.
- 5: encripta en SHA-256.
- 6: encripta en SHA-152.
Se puede usar en la misma línea, ejemplo:
sudo usermod –m –s /bin/bash -p $(openssl passwd –1 nuevaPass1) nuevoUsuario
Establecer políticas de caducidad
chage [opciones] [Usuario]
passwd [opciones] [Usuario]
Añadir grupos al sistema
groupadd [-g GID] nombreGrupo
- g: identificador del grupo.
Por defecto, debemos indicar un valor único igual o superior a 1000.
Grupos predeterminados del sistema
adm, users, root, tty, lpadmin.
Modificar características de grupo
groupmod [-g GID] [-n nuevoNombre] nombreGrupo
Eliminar grupo
groupdel nombreGrupo
Añadir usuario a un grupo
adduser loginUser nombreGrupo
Eliminar usuario de un grupo
deluser loginUser nombreGrupo
groups loginUser: grupos a los que pertenece un usuario.
id loginUser: información más detallada, incluyendo UID y GID de los grupos.
Cambiar el propietario de un archivo/directorio
chown [-R] nuevo_usuario[:nuevo_grupo] arch_o_dir
- R: modo recursivo que aplica los cambios también al contenido del directorio
indicado.
- nuevo_usuario:nuevo_grupo → almacena usuario y grupo al mismo tiempo.
- :nuevo_grupo → solo se cambia la propiedad del grupo; no el usuario.
- nuevo_usuario → solo se cambia al usuario.
- nuevo_usuario: → se cambia al usuario; el grupo es el grupo por defecto del
usuario registrado.
Cambiar el grupo de un archivo
chgrp nuevo_grupo archivo1 [archivo2 archivo3 …]
Cambiar el grupo de un directorio
chgrp [-R] nuevo_grupo directorio
- R: modo recursivo que aplica los cambios también al contenido del directorio
indicado.
Modificar permisos
chmod [-R] permisos arch_o_dir
- Octal: chmod 0644 prueba.txt
- Simbólica: chmod go+r prueba.txt
Simbólico
Tiene la siguiente sintaxis:
chmod modo_simbólico,[modo_simbólico] arch_o_dir
Donde las opciones para modo simbólico son:
1. Destinatarios:
- u: propietario.
- g: grupo.
- o: otros usuarios.
- a: todos.
2. Tipo de modificación:
- + : añadir permiso.
- - : eliminar permiso.
- = : establece el permiso indicado y elimina el resto.
3. Tipo de modificación:
- r: lectura.
- w: escritura.
- x: ejecución.
Por ejemplo: chmod go-r,g+x prueba.txt
Octal
rwxrw-r-- → 111110100 | Binario
111|110|1002 → 7648 | Octal
Por ejemplo: chmod 764 prueba.txt
Bits raros
Set-uid o suid:
- Se establece en archivos ejecutables y aparece representado en la máscara del
propietario como “s” → rwsrw-r--
- Cuando está activado en un archivo ejecutable, el programa se ejecutará con
los privilegios del propietario del archivo en lugar de los del usuario que lo
ejecuta.
- Si el propietario no tiene permiso de ejecución, no tiene efecto y aparece como
“S” → rwSrw-r--
• Propietario con permisos de ejecución → rwsrw-r--
• Propietario sin permisos de ejecución → rwSrw-r--
Set-gid o sgid:
- Se establece en archivos ejecutables o directorios y aparece representado en la
máscara del grupo como “s” → rw-rwsr--
- Cuando está activado en un archivo ejecutable, el programa se ejecutará con
los privilegios del grupo específico del archivo (grupo principal) en lugar de los
del grupo que lo ejecuta. Cuando está activado en un directorio, los archivos y
subdirectorios del interior estarán forzados a pertenecer al grupo del directorio y
no al grupo primario del usuario que lo haya creado.
- Si el grupo del archivo no tiene permiso de ejecución, no tiene efecto y aparece
como “S” → rw-rwSr--
• Grupo con permisos de ejecución → rw-rwsr--
• Grupo sin permisos de ejecución → rw-rwSr--
Sticky-bit:
- Se establece en directorios y aparece representado en la máscara de otros
usuarios con “t” → rw-rwxr-t
- Cuando este bit está activado en un directorio, solo el propietario de los
archivos contenidos, el propietario del directorio y el usuario root pueden
eliminar o mover archivos dentro de ese directorio, incluso si otros usuarios
tienen permisos de lectura, escritura o ejecución en el directorio.
- Si el resto de los usuarios no tienen permisos de ejecución, no tiene efecto y
aparece como “T” → rw-rwxr-T
• Resto usuarios con permisos de ejecución → rw-rwxr-t
• Resto usuarios sin permisos de ejecución → rw-rwxr-T
Bits raros de manera simbólica
chmod modo_simbólico,[modo_simbólico] arch_o_dir
Donde las opciones para modo simbólico son:
1. Destinatarios:
- u: propietario.
- g: grupo.
- o: otros usuarios.
- a: todos.
2. Tipo de modificación:
- + : añadir permiso.
- - : eliminar permiso.
- = : establece el permiso indicado y elimina el resto.
3. Tipo de modificación:
- r: lectura.
- w: escritura.
- x: ejecución.
- s: set-uid y set-gid.
- t: sticky-bit.
chmod +s prueba.txt (habilitación del set-uid)
chmod g+s prueba.txt (habilitación del set-gid)
chmod +t prueba.txt (habilitación del sticky-bit)
Bits raros de manera octal
111|110|1002 → 7658
Tras convertir la máscara binaria a octal podemos activar los bits raros así:
- Set-uid: sumar 4000 al octal.
- Set-gid: sumar 2000 al octal.
- Sticky-bit: sumar 1000 al octal.
Por ejemplo: chmod 1765 prueba.txt
Ver máscara del sistema
umask
Obtener permisos de la máscara
0002 8 → 000 000 000 0102
NOT (000 000 000 0102) = 111 111 111 1012
Archivos: 000 110 110 110 2 AND 111 111 111 1012 = 000 110 110 1002 0664
Directorios: 000 111 111 1112 AND 111 111 111 1012 = 000 111 111 1012 0775
Cambiar máscara
umask [-S] máscara
- S: umask en octal.
Gestión de procesos
GNU/Linux es multitarea y multiusuario.
Tipos de algoritmos de planificacion
- FCFS.
- SJF.
- Por prioridad.
- Turno rotativo.
Ciclo de vida de los procesos
- Nuevo: asigna un espacio en memoria.
- Listo: preparado para la ejecucion.
- En ejecucion: se esta ejecutando.
- Bloqueado: estado de espera.
- Finalizado: finaliza el proceso y se libera la memoria y el PCB.
Obtener información de los procesos
ps [options]
- e: visualiza información sobre "todos" los procesos del sistema.
- u usuario: visualiza información de los procesos del usuario indicado.
- aux: muestra una lista detallada de todos los procesos del sistema, incluidos
los de todos los usuarios.
- r: sólo procesos cuyo estado sea ejecutándose.
- H: muestra la jerarquía de procesos.
-
Mostrar el estado del sistema y los procesos
top
Detener o cancelar un trabajo
- Ctrl + Z: detiene la ejecución del trabajo, puede retomarse.
- Ctrl + C: mata o cancela la ejecución del trabajo.
Ejecutar en segundo plano
&
Ejemplo: sleep 15 &
Comprobar procesos
ps
Comprobar tareas
jobs
- +: tarea más reciente.
- -: segunda tarea más reciente.
Mover a primer plano
fg [%][tarea]
Ejemplo: fg %1
Mover a segundo plano
bg [%][tarea]
Ejemplo: bg %1
Controlar proceso
kill + señal + PID
Algunas de las señales más utilizadas son:
- 2 o SIGINT: “Signal Interrupt” o Ctrl+C.
- 9 o SIGKILL: “Signal Kill”.
- 15 o SIGTERM: “Signal Terminate”.
- 18 o SIGCONT: “Signal Continue”.
- 19 o SIGSTOP: “Signal Stop” o Ctrl+Z.