6 Usuarios y Procesos en Linux

12
1 USUARIOS Y GRUPOS. 1.1 Usuarios y grupos. Los usuarios Los usuarios se identifican por un nombre de conexión o login, al que se asocia un número llamado UID (IDentificador de Usuario) y al menos un GID (IDentificador de Grupo). El UID (IDentificador de Usuario) es el valor que Linux utiliza internamente para identificar al usuario. Los grupos Un grupo agrupa usuarios. Cada usuario forma parte de, al menos, un grupo. Dentro de los grupos a los que pertenece un usuario, habrá uno que será grupo principal o primario. Al resto de grupos se les llama grupos secundarios. El GID (IDentificador de Grupo) es un número que Linux utiliza internamente para identificar el grupo. 1.2 Tipos de usuarios. En Linux se pueden identificar tres tipos de usuarios: root También llamado superusuario o administrador. Su directorio de trabajo está en /root. Es la única cuenta con privilegios sobre todo el sistema. Su uid es 0. usuarios especiales: bin, daemon, adm, lp, mail, ... También llamadas cuentas del sistema o de no login. No tienen directorio de trabajo ni contraseña porque no se utilizan para iniciar sesión con ellas. Su uid suele estar entre 1 y UID_MIN (valor definido en /etc/login.defs). usuarios normales Su directorio de trabajo suele estar en /home.

description

Gestion de usuarios en linuxGestion de procesos en linux

Transcript of 6 Usuarios y Procesos en Linux

1

1 USUARIOS Y GRUPOS.1.1 Usuarios y grupos.Los usuarios

Los usuarios se identifican por un nombre de conexin o login, al que se asocia un nmero llamado UID (IDentificador de Usuario) y al menos un GID (IDentificador de Grupo).

El UID (IDentificador de Usuario) es el valor que Linux utiliza internamente para identificar al usuario.

Los grupos

Un grupo agrupa usuarios.Cada usuario forma parte de, al menos, un grupo. Dentro de los grupos a los que pertenece un usuario, habr uno que ser grupo principal o primario. Al resto de grupos se les llama grupos secundarios.

El GID (IDentificador de Grupo) es un nmero que Linux utiliza internamente para identificar el grupo.1.2 Tipos de usuarios.En Linux se pueden identificar tres tipos de usuarios:

root

Tambin llamado superusuario o administrador.

Su directorio de trabajo est en /root.

Es la nica cuenta con privilegios sobre todo el sistema.

Su uid es 0.

usuarios especiales: bin, daemon, adm, lp, mail, ...

Tambin llamadas cuentas del sistema o de no login.

No tienen directorio de trabajo ni contrasea porque no se utilizan para iniciar sesin con ellas.

Su uid suele estar entre 1 y UID_MIN (valor definido en /etc/login.defs).

usuarios normales

Su directorio de trabajo suele estar en /home.

Su uid suele definirse a partir de UID_MIN

1.3 Ficheros de configuracin.Los ficheros de configuracin son ficheros de texto que estn en /etc.1.3.1 /etc/login.defsDefine las variables que controlan los aspectos de la creacin de usuarios.

Algunas variables son:

UID_MIN: Valor mnimo de uid para usuarios normales.

UMASK: Valor de umask por defecto.

PASS_MIN_LEN: longitud mnima de la contrasea.

1.3.2 /etc/passwd

En este fichero se definen todas las cuentas del sistema. Es un archivo de texto que se crea en el momento de instalar el sistema con la cuenta de root y las cuentas especiales.

Este fichero contiene una lnea para cada usuario con esta estructura:

login:contrasea:UID:GID:comentario:directorio_personal:shellEjemplo:

pepe:x:1000:1000:Pepe Prez:/home/pepe:/bin/bashDescripcin de cada campo:

Campoletra

asoc.Descripcin

loginlEs el login o nombre de conexin del usuario

contraseaEn los sistemas antiguos en este campo se almacenaba la contrasea cifrada.

Actualmente contiene:

una x si la contrasea est en /etc/shadow

un asterisco (*) que impide al usuario iniciar sesin local

UIDuUID del usuario

GIDgGID del grupo principal del usuario

comentarioccomentario, puede ser el nombre completo del usuario

directorioddirectorio personal del usuario, donde entra el usuario cuando inicia sesin

shellsintrprete de comandos que se va a ejecutar cuando ese usuario inicie sesin

1.3.3 /etc/group

Fichero de grupos. Contiene una lnea para cada grupo con la siguiente estructura:

grupo:contrasea:GID:usuario1,usuario2,...

Ejemplo:

adm:x:4:pepe,mariano

Descripcin de cada campo:

CampoDescripcin

grupoNombre del grupo

contraseaContrasea del grupo; se utiliza algunas veces, para operaciones especiales

GIDGID del grupo

usuarioslista de usuarios que tienen a este grupo como grupo secundario; los usuarios estn separados por comas.

1.3.4 /etc/shadow

Fichero que contiene las contraseas de los usuarios (cifradas).

Adems, contiene informacin sobre las condiciones de la contrasea: cul es la vigencia mnima, en qu fecha se cambi por ltima vez, etc.1.3.5 /etc/gshadowFichero que contiene las contraseas de los grupos (cifradas).

En la mayora de las distribuciones Linux no se utiliza.1.4 Comandos para gestionar usuarios y grupos.1.4.1 Crear, modificar y eliminar usuarios: useradd, usermod y userdel

Crear un usuario: useradd

Este comando crea el usuario, un grupo principal con el mismo nombre, y las contraseas del usuario y del grupo.

Sintaxis:

useradd [opciones] login

Opciones

-m

Obliga a que se cree el directorio personal

-u UID

Asigna el UID especificado a ese usuario

-g GID

Asigna el GID especificado a ese usuario como grupo principal

-G lista_gidmodifica la lista de grupos a los que el usuario pertenece como grupossecundarios; los grupos estarn separados por comas y sin espacios

-d directorioAsigna ese directorio al usuario como directorio personal

-c comentarioAsigna ese comentario al usuario

-s shell

Asigna esa shell (intrprete de comandos) al usuario

-p passwordEstablece un password para ese usuarioModificar un usuario: usermod

Sintaxis

usermod [opciones] login

Opciones

Como en useradd:

-u, -g, -G, -d, -c y -s

Adems:

-L

(lock) bloquea la cuenta

-U

(unlock) desbloquea la cuenta

-l login

modifica el loginEliminar un usuario: userdel

Este comando elimina el usuario, su grupo principal y las contraseas del usuario y del grupo. Tambin elimina el directorio personal, si se indica con la opcin -r.

Sintaxis

userdel [opciones] login

Opciones:

-r

elimina el directorio personal del usuario

Ejemplo: Crear al usuario Pepe Prez, creando a la vez su directorio personal.

Cambiar despus el comentario (nombre completo)

Y por ltimo, eliminarlo, eliminando tambin su directorio personal.$ sudo useradd -c Pepe Prez -m pepe

$ sudo usermod -c Jos Prez pepe

$ sudo userdel -r pepe1.4.2 Crear, modificar y eliminar grupos: groupadd, groupmod y groupdel

Crear un grupo: groupadd

Sintaxis

groupadd nombre_grupoModificar un grupo: groupmod

Sintaxis:

groupmod [opciones] nombre_grupo

Opciones:

-n nombrerenombra el grupo

-g GID

modifica el GIDEliminar un grupo: groupdel

No se puede eliminar un grupo si es el grupo principal de un usuario.

Si se elimina un grupo, hay que tener en cuenta que probablemente quedarn ficheros y/o directorios que tienen un grupo propietario que ya no existe.

Sintaxis:

groupdel nombre_grupoEjemplo: Crear el grupo clientes; cambiar despus el nombre y eliminarlo.$ sudo groupadd clientes

$ sudo groupmod -n clientes2010 clientes

$ sudo groupdel clientes20101.4.3 Otros comandos de usuarios: id, passwd, newgrp

Comando id

El comando id proporciona informacin sobre un usuario. Si no se especifica el usuario, mostrar informacin sobre el usuario que ejecuta el comando.Sintaxis

id [usuario]Ejemplo: Obtener informacin sobre el usuario actual y sobre el usuario root$ id

uid=1000 (pepe) gid=1000 (pepe) grupos=4 (adm), 20(dialout), 24(cdrom), 25(floppy), 29(audio),30(dip), 44(video), 46(plugdev), 107(fuse), 109(lpadmin), 115(admin), 124(sambashare),1000(pepe)

$ id root

uid=0 (root) gid=0 (root) grupos=0 (root)Usuario actual:

usuario actual: uid=1000 (login=pepe)

grupo principal del usuario: gid=1000 (nombre del grupo=pepe)

grupos secundarios: gid=4 (nombre del grupo=adm), 20(dialout), 24(cdrom)...

Usuario root: uid=0; su grupo principal se llama root (gid=0) y slo pertenece a ese grupo.Crear o modificar contraseas: passwd

Permite crear o modificar la contrasea de un usuario. Si no se especifica usuario, se entiende que se quiere modificar la contrasea del usuario actual.

Sintaxis:

passwd [login]

Este comando puede ser utilizado para:

Modificar la contrasea del usuario actual (cualquier usuario). Por seguridad, se le pedir la contrasea antigua.

Modificar la contrasea de otro usuario (usuario root). El usuario root puede modificar las contraseas de todos los usuarios del sistema sin necesidad de que conozca la contrasea anterior. Incluso puede asignar una contrasea que no cumpla los requisitos del sistema.Cambiar el grupo principal de un usuario: newgrp

Se utiliza para cambiar el grupo principal de manera temporal

Sintaxis:

newgrp [nuevo_grupo]

El nuevo_grupo tiene que ser un grupo secundario del usuario.

newgrp sin parmetros vuelve a establecer como grupo principal el que tena inicialmente el usuario.Ejemplo:touch a

# Crear el fichero a

newgrp admin

# Temporalmente el grupo admin es el principal

touch b

# Crear el fichero b

newgrp

#Restaurar el grupo principal del usuario

ls -l a b

# Ver el grupo propietario de a y b

2 PROCESOS Y CONTROL DE PROCESOS.2.1 Los procesos en Linux.Los dos pilares fundamentales de los sistemas Unix son el sistema de archivos y la gestin de procesos.

Qu hace un proceso:

Un proceso es un programa en ejecucin. Los procesos nacen, tienen procesos hijos, cambian de estado: duermen, mueren, pueden ser asesinados e incluso pueden convertirse en zombies.

Informacin que tenemos sobre cada proceso:

PID, process id, identificador de proceso. Nmero asociado a cada proceso.

PPID, parent ppid, pid del proceso padre del proceso.

UID, user ID, identificador de la cuenta de usuario asociada al proceso TTY, terminal asociada al proceso.

S, estado del proceso: terminado, esperando, en ejecucin, etc.

PRI, prioridad del proceso.

TIME, tiempo que lleva ejecutndose el proceso

CMD, comando que ha generado el proceso.2.1.1 El PID

Linux asigna a cada proceso una identificacin numrica denominada PID (process identification). Al resto de los procesos se les asignar un nmero consecutivo a partir de ste.

Cuando un proceso muere, su PID no vuelve a ser utilizado.

2.1.2 Jerarqua de los procesos.

El proceso init es el proceso del que dependen todos los dems procesos: init es el antecesor de todos los procesos: todos los procesos dependen de otro, su padre, el que les ha creado, excepto init.

Cuando se va a crear un proceso, se toma como referencia el del padre, se hace una copia de l y sobre esa copia se hacen las modificaciones correspondientes para que se ejecute el comando deseado.

El proceso init tiene pid=1, es el primer proceso iniciado por el sistema. El proceso init tiene ppid=0, que es un pseudoproceso que representa el inicio del sistema.

2.1.3 Demonios o servicios

Los demonios son procesos que se ejecutan en segundo plano para dar algn tipo de servicio. Son lo que en otros sistemas se denominan servicios.

2.2 Ejecutar un programa en background &.Se trata de ejecutar un proceso sin que bloquee la terminal. Normalmente los procesos que se ejecutan en background son:

procesos lentos

procesos que no interactan con el usuario, es decir, no leen nada del teclado ni envan nada a la pantalla.

Para ejecutar un proceso en background: escribimos el carcter & al final de un comando.

Ejemplo:sleep 5 &El bash escribir una lnea similar a esta:

[1] 8747

[1]: nmero de proceso en background

8747: pid del proceso sleep 5

y presentar el prompt para que podamos seguir introduciendo rdenes: no se queda bloqueado hasta que termine el proceso.

Cuando el proceso ejecutado en segundo plano finaliza, el shell presentar un mensaje similar a este:[1]+ Done sleep 5

2.3 Seales que se envan a un proceso.A un proceso se pueden enviar las siguientes seales:

Interrumpir / abortar

Normalmente CTRL+C

Detener momentneamente:Normalmente CTRL+Z

Fin de fichero

Normalmente CTRL + D2.4 Comandos de procesos.2.4.1 Gestionar procesos: sleep, ps, pstree, top, kill.Hacer una pausa: sleepHace una pausa de n segundos.

Sintaxis:

sleep n [unidad]

Valor de unidad:

ssegundos (valor predeterminado)

mminutos

hhoras

ddas

El comando ps

El comando ps (process status) permite obtener informacin sobre los procesos en ejecucin. Por defecto, muestra informacin slo del usuario actual y de la terminal actual.

Sintaxis:

ps [opciones] [pid...]

Opciones:

-f(full), muestra una informacin ms completa

-l(long) Muestra toda la informacin de cada proceso

-eMuestra todos los procesos del sistema

-u usuariosPermite indicar una lista de usuarios separados por una coma

-g gruposLo mismo para grupos

-t terminalesLo mismo para terminales

Ejemplos$ ps

$ ps -ef

# Esta forma es muy utilizada

$ ps -u root

$ ps -l

Se muestra a continuacin el significado de algunas columnas:ColumnaSignificado

FBanderas (flags) del proceso

SEstado del proceso:

R, running o runnable (en ejecucin o en la cola de ejecucin)

S, sleeping (esperando que se produzca un evento)

T, parado

Z, zombie, terminado pero no comunicado a su padre

UIDUser ID, identificador del usuario

PIDProcess ID, identificador del proceso.

PPIDParent Process ID, pid del proceso padre

CFactor de Prioridad, cuanto mayor sea este valor, tendr ms prioridad

PRIPrioridad del proceso

NINice, valor para el clculo de prioridad

STIMEHora de inicio de la ejecucin proceso

TTYTerminal desde el que se ejecut el proceso

TIMETiempo acumulado de uso de CPU del proceso

CMDComando ejecutado

Mostrar los procesos en memoria en forma de rbol: comando pstreeEl comando pstree muestra la estructura jerrquica de los procesos en memoria.Mostrar la actividad del procesador: comando topMuestra informacin de la actividad del procesador y de los recursos que estn consumiendo los procesos.Envo de seales a un proceso: comando killEl comando kill se utiliza para enviar una seal a un proceso.

La seal es uno de los medios de comunicacin entre los procesos. Cuando se enva una seal a un proceso, ste debe interceptarla y actuar en consecuencia. Los procesos pueden ignorar algunas seales, pero otras no.

Sintaxis:

kill [-l] -seal pid...

Donde:

-l

Muestra una lista de seales.

-seal

La seal es un nmero, aunque tambin se puede utilizar su nombre.

Algunas seales son:SealSignificado

1 (SIGHUP)Seal que manda un proceso a sus procesos hijos cuando termina.

2 (SIGINT)Interrupcin de un proceso (como las teclas SUPR o Ctrl+C)

9 (SIGKILL)Seal que no se puede ignorar, fuerza al proceso a terminar

15 (SIGTERM)Seal que pide al proceso que termine con normalidad, no lo fuerza.

Es la seal por defecto

Ejemplo$ sleep 5000 &

# Ejecutar en 2 plano

[2] 15133

$ kill -9 15133

# Enviar seal al proceso

[1]+ Terminado (killed) sleep 5000

PAGE 10