Вы находитесь на странице: 1из 10

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.defs

Define 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:shell

Ejemplo:
pepe:x:1000:1000:Pepe Prez:/home/pepe:/bin/bash

Descripcin de cada campo:


Campo

letra

Descripcin

asoc.
login

contrasea

Es el login o nombre de conexin del usuario


En 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

UID

UID del usuario

GID

GID del grupo principal del usuario

comentario

comentario, puede ser el nombre completo del usuario

directorio

directorio personal del usuario, donde entra el usuario cuando inicia


sesin

shell

intrprete 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:


Campo

Descripcin

grupo

Nombre del grupo

contrasea

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

GID

GID del grupo

usuarios

lista 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/gshadow

Fichero 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_gid modifica la lista de grupos a los que el usuario pertenece como


grupos secundarios; los grupos estarn separados por comas y sin espacios
-d directorio Asigna ese directorio al usuario como directorio personal
-c comentario Asigna ese comentario al usuario
-s shell

Asigna esa shell (intrprete de comandos) al usuario

-p password

Establece un password para ese usuario

Modificar 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 login

Eliminar 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 pepe

1.4.2

Crear, modificar y eliminar grupos: groupadd, groupmod y groupdel

Crear un grupo: groupadd

Sintaxis
groupadd nombre_grupo
Modificar un grupo: groupmod

Sintaxis:
groupmod [opciones] nombre_grupo
Opciones:
-n nombre

renombra el grupo

-g GID

modifica el GID

Eliminar 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_grupo
Ejemplo: Crear el grupo clientes; cambiar despus el nombre y eliminarlo.
$ sudo groupadd clientes
$ sudo groupmod -n clientes2010 clientes
$ sudo groupdel clientes2010

1.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
newgrp admin
principal

# Crear el fichero a
#

Temporalmente

touch b
newgrp

el

grupo

admin

es

el

# Crear el fichero b
#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

Detener momentneamente: Normalmente CTRL+Z

Fin de fichero

Normalmente CTRL+C

Normalmente CTRL + D

2.4 Comandos de procesos.


2.4.1

Gestionar procesos: sleep, ps, pstree, top, kill.


Hacer una pausa: sleep

Hace una pausa de n segundos.


Sintaxis:
7

sleep n [unidad]
Valor de unidad:
s

segundos (valor predeterminado)

minutos

horas

das

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

-e

Muestra todos los procesos del sistema

-u usuarios

Permite indicar una lista de usuarios separados por una

-g grupos

Lo mismo para grupos

-t terminales

Lo mismo para terminales

coma

Ejemplos
$ ps
$ ps -ef

# Esta forma es muy utilizada

$ ps -u root
$ ps -l

Se muestra a continuacin el significado de algunas columnas:

Columna

Significado

Banderas (flags) del proceso

Estado del proceso:

UID

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


User ID, identificador del usuario
8

PID

Process ID, identificador del proceso.

PPID

Parent Process ID, pid del proceso padre

Factor de Prioridad, cuanto mayor sea este valor, tendr ms


prioridad

PRI

Prioridad del proceso

NI

Nice, valor para el clculo de prioridad

STIME

Hora de inicio de la ejecucin proceso

TTY

Terminal desde el que se ejecut el proceso

TIME

Tiempo acumulado de uso de CPU del proceso

CMD

Comando ejecutado

Mostrar los procesos en memoria en forma de rbol: comando pstree

El comando pstree muestra la estructura jerrquica de los procesos en memoria.


Mostrar la actividad del procesador: comando top

Muestra informacin de la actividad del procesador y de los recursos que estn


consumiendo los procesos.
Envo de seales a un proceso: comando kill

El 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:
Seal

Significado

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
proceso
[1]+ Terminado (killed)

# Enviar seal al
sleep 5000

10

Вам также может понравиться