Sunteți pe pagina 1din 11

Curso

Red Hat
Linux
Enterprise

0
Usuarios y Grupos.

Usuarios
Por ser el sistema operativo GNU/Linux multiusuario, varios usuarios, personas ( o una misma
persona en varios sitios) puede estar usando la computadora a la vez, bien por varios terminales,
en el caso de que estn conectados a la pc (por el puerto serie, por ejemplo) a travs de telnet, o
mediante las consolas virtuales, a estas se accede de manera general pulsando ALT+Fx siendo x un
nmero generalmente entre el 1 y el 6, aunque esto vara y se puede configurar a tu gusto, como
todo en Linux.
Si estamos en una sesin X, no funciona, tendremos que usar CTRL+ALT+Fx, no encontraremos
otra sesin X vaca, aparecer otra sesin en modo texto, si queremos tener dos pantallas X a la
vez, deberemos lanzar la 2da desde la sesin de modo texto (es fcil, pero consume mucha
memoria) o utilizar los escritorios virtuales, que es bastante ms prctico.

Al iniciar el sistema operativo, nos aparece un login, donde es necesario introducir el nombre por
el que se nos conoce dentro de la mquina (nombre de usuario) y luego una clave, que nos puede
haber proporcionado un administrador, o bien la del usuario que creamos durante la instalacin
(al menos la de root deberamos haberla definido durante la instalacin).
Al loguearnos en el sistema, veremos que mientras escribimos la contrasea , esta no aparecer
en pantalla, es una medida de seguridad, para que nadie pueda ver lo que tecleamos.
Para cambiar la contrasea de un usuario, podemos hacerlo con el comandopasswd, nos pedir
la contrasea actual (para comprobar) y el sistema operativo nos solicitar que escribamos la
nueva contrasea dos veces (para verificar que est bien escrito).

$ passwd

Si estamos en el prompt del sistema, veremos <nombre de usuario>@<nombre de pc>


<carpeta> y al final el signo $ si entramos como usuario normal y # si entramos como usuario
root. Si hemos entrado como root, es mejor que definamos un nuevo usuario, con el comando
adduser <nombre>.

$ adduser cursoutn

Luego de crear un nuevo usuario, si no hemos utiliado el parmetro -p para establecer la


contrasea, debemos hacerlo con el comando passwd <usuario> .

[root@server ~]# passwd cursoutn


Cambiando la contrasea del usuario cursoutn.
Nueva contrasea:
Vuelva a escribir la nueva contrasea:
passwd: todos los smbolos de autenticacin se actualizaron con xito.
[root@server ~]#

Para finalizar la sesin, y luego entrar como otro usuario basta con escribir logout o exit. Es muy
habitual finalizar e iniciar sesin si eres root. El usuario root, solo debera ser utilizado en casos de
necesidad, por ejemplo cuando queremos instalar algo, o cambiar algo de la configuracin, en
cualquier otro caso es recomendable ser un usuario normal, por seguridad, y por comodidad.

34
Como root adems podemos cambiar las contraseas de otros usuarios, incluso sin falta de
recordar la antigua, con passwd usuario, muy til en casos de olvidar la contrasea.
Hay ocasiones en que necesitamos hacer algo como otro usuario, el comando su <usuario> nos
preguntar la contrasea de usuario, y si es correcta nos transformaremos en ese usuario hasta
que salgamos de la session, momento en que volveramos a ser el usuario anterior, esta opcin
puede estar desactivada por motivos de seguridad en algunos computadoras.

[energia@server ~]$ su cursoutn


Contrasea:
[cursoutn@server energia]$ ls
ls: no se puede abrir el directorio .: Permiso denegado
[cursoutn@server energia]$

El comando adduser tiene varias opciones, segn si quisiramos configurar, como por ejemplo:

[root@server home]# 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
-d, --home-dir DIR_PERSONAL directorio personal de la nueva cuenta
-D, --defaults imprime o cambia la configuracin predeterminada de useradd
-e, --expiredate FECHA_CADUCIDAD fecha de caducidad 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
-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
-p, --password CONTRASEA contrasea cifrada de la nueva cuenta
-R, --root CHROOT_DIR directory to chroot into
-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

Por defecto, el comando useradd crea un usuario con un directorio home igual al nombre de
usuario, por ejemplo para el caso del usuario cursoutn el directorio home es: /home/cursoutn.
Podemos modificar el nombre de la carpeta home, usando la opcin -d <directorio>:

[root@server ~]# useradd -d /home/proyectos cursouno


[root@server ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
energia:x:1000:1000:energia:/home/energia:/bin/bash
cursoutn:x:1001:1001::/home/cursoutn:/bin/bash
cursouno:x:1002:1002::/home/proyectos:/bin/bash

Tambin podemos crear un usuario con un uid o un gid especfico:

[root@server ~]# useradd -u <uid> -g <gid> <usuario>

35
O crear un usuario que pertenezca a varios grupos utilizando la opcin -G.

[root@server ~]# useradd -G <grupo1>,<grupo2>,<grupo3> <usuario>

Por razones de seguridad, podramos querer crear un usuario sin un directorio home:
[root@server ~]# useradd -M <usuario>

Otra opcin que pude ser til a la hora de crear usuarios temporarios, es crearlos con una fecha de
expiracin definida. Por defecto, el comando useradd crear usuarios que nunca expiran,
definiendo la fecha de expiracin como 0, que significa que nunca expira.
Con la opcin -e y la fecha definida con el formato: AAAA-MM-DD.

[root@server ~]# useradd -e 2017-01-01 cursodos

Para verificar los datos de expiracin, podemos utilizar el comando chage

[root@server ~]# useradd -e 2017-01-01 cursodos


[root@server ~]# chage -l cursodos
ltimo cambio de contrasea :nov 29, 2016
La contrasea caduca : nunca
Contrasea inactiva : nunca
La cuenta caduca : ene 01, 2017
Nmero de das mnimo entre cambio de contrasea :0
Nmero de das mximo entre cambio de contrasea : 99999
Nmero de das de aviso antes de que caduque la contrasea : 7

Adems de poder definir la fecha de expiracin de un usuario, podemos establecer la cantidad de


das a partir del cual la contrasea caducara, luego de que la cuenta se encuentre inactiva.
El argumento -f se utiliza para definir este nmero. Por defecto, el valor de password expiry es
seteado en -1 que significa que la contrasea nunca expira.

[root@server ~]# useradd -e 2017-01-01 -f 45 cursotres

Los parmetros pueden modificarse luego.


En el archivo /etc/passwd el sistema guarda todos los datos referentes a los usuarios del sistema :

[energia@server energia]$ cat /etc/passwd


root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
energia:x:1000:1000:energia:/home/energia:/bin/bash
cursoutn:x:1001:1001::/home/cursoutn:/bin/bash

36
Para modificar los datos pertenecientes a un usuario, podemos utilizar el comando usermod.
A continuacin, algunos parametros que se pueden utilizar con el comando:
-d modifica el directorio de trabajo o home del usuario
-e cambia o establece la fecha de expiracin de la cuenta, formato AAAA-MM-DD
-g cambia el nmero de grupo principal del usuario (GID)
-G establece otros grupos a los que puede pertenecer el usuario, separados por comas.
-l cambia el login o nombre del usuario
-L bloquea la cuenta del usuario, no permitindole que ingrese al sistema. No borra ni
cambia nada del usuario, solo lo deshabilita.
-s cambia el shell por defecto del usuario cuando ingrese al sistema.
-u cambia el UID del usuario.
-U desbloquea una cuenta previamente bloqueada con la opcin -L.

Para cambiar el nombre de usuario de 'cursoutn' a 'cursoepe':


[root@server ~]# usermod -l cursoepe cursoutn

Para eliminar usuarios podemos utilizar el comando userdel


Como su nombre lo indica, userdel elimina una cuenta del sistema, userdel puede ser invocado de
tres maneras:

# userdel <nombre de usuario>


Sin opciones elimina la cuenta del usuario de /etc/passwd y de /etc/shadow, pero no elimina su
directorio de trabajo ni archivos contenidos en el mismo, esta es la mejor opcin, ya que elimina la
cuenta pero no la informacin de la misma.

# userdel -r <nombre de usuario>


Al igual que lo anterior elimina la cuenta totalmente, pero con la opcin -r adems elimina su
directorio de trabajo y archivos y directorios contenidos en el mismo, asi como su buzn de
correo, si es que estuvieran configuradas las opciones de correo. La cuenta no se podr eliminar si
el usuario est logueado o en el sistema al momento de ejecutar el comando.

# userdel -f <nombre de usuario>


La opcin -f es igual que la opcin -r, elimina todo lo del usuario, cuenta, directorios y archivos del
usuario, pero adems lo hace sin importar si el usuario est actualmente en el sistema trabajando.
Es una opcin muy radical, adems de que podra causar inestabilidad en el sistema, as que hay
que usarla solo en casos muy extremos.

Grupos
Los grupos sirven para categorizar y organizar los usuarios. Permite aplicar permisos a grupos que
son heredados por los usuarios que formen parte de stos. Hay grupos de usuarios y grupos de
sistema. Los primeros estn conformados por usuarios regulares y utilizan un nmero de GID
group identification arriba del 1000. Los grupos de sistema son aquellos utilizados por
programas y servicios y utilizan un nmero de GID menor a 1000.

GNU/Linux utiliza grupos para acceder a dispositivos y grupos para acceder a partes del sistema de
ficheros, etc.

37
El comando groupadd permite aadir un grupo indicando como parmetro el nombre del grupo.
Por ejemplo, si deseamos crear un grupo llamado alumnos ejecutaremos:

[root@server ~]# groupadd alumnos

El comando groups sin argumentos, lista los grupos del usuario con el que estoy logueado
actualmente. Al ponerle como argumento el nombre de usuario, lista los grupos de ese usuario en
particular.

[root@server ~]# groups


root
[root@server ~]# groups energia
energia : energia

Para agregar un usuario a un grupo, utilizamos el comando gpasswd -a <usuario> <grupo>

[root@server ~]# gpasswd -a energia alumnos


Aadiendo al usuario energia al grupo alumnos
[root@server ~]# groups energia
energia : energia alumnos

Para eliminar un usuario de un grupo, utilizamos el mismo comando pero con el modificador -d

[root@server ~]# groups energia


energia : energia alumnos
[root@server ~]# gpasswd -d energia alumnos
Eliminando al usuario energia del grupo alumnos
[root@server ~]# groups energia
energia : energia

Con gpasswd se puede establecer otros parmetros, como la contrasea de grupo. Si un grupo
tiene contrasea, un usuario puede puede unirse al grupo dando la contrasea. Opciones de
gpasswd:
-r, --remove-password Elimina la password del grupo.
-R, --restrict Restringe el acceso al grupo.
-A, --administrators user,... Establece la lista de usuarios administradores del grupo.
-M, --members user,... Establece la lista de usuarios miembro.

Para modificar el grupo principal de un usuario temporalmente:

$ newgrp <nuevogrupo>

Para ejecutar newgpr debemos de pertenecer de antemano a ese grupo. Si el grupo tiene
contrasea se nos solicitar la contrasea. Si el grupo tiene contrasea cualquier usuario
pertenezca o no al grupo que se sepa la contrasea podr asignarse como grupo principal
temporal a ese grupo a menos que el grupo tenga la opcin -R (restrict). En este ltimo caso solo
los usuarios pertenecientes al grupo y que se sepan la contrasea podrn asignarse este grupo
como grupo principal temporal.

38
Para modificar el nombre de un grupo o el gid del mismo podemos utilizar el comando
groupmod.

[root@server ~]# groupmod [-g nuevo-gid] [-n nuevo-nombre] <nombre-grupo>

La eliminacin de grupos se realiza con el comando groupdel seguido del nombre del grupo.

[root@server ~]# groupde <grupo>l

Este comando eliminara el grupo <grupo>. Si algn usuario tuviera dicho grupo como grupo
primario, el comando groupdel no eliminar el grupo.

Archivo /etc/group

Este archivo guarda la relacin de los grupos a los que pertenecen los usuarios del sistema,
contiene una lnea para cada usuario con tres o cuatro campos por usuario:

El campo 1 indica el usuario.


El campo 2 x indica la contrasea del grupo, que no existe, si hubiera se mostrara un hash .
encriptado.
El campo 3 es el Group ID (GID) o identificacin del grupo.
El campo 4 es opcional e indica la lista de grupos a los que pertenece el usuario

[root@server ~]# cat /etc/group


root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
mail:x:12:postfix
nobody:x:99:
users:x:100:
ssh_keys:x:999:
sshd:x:74:
energia:x:1000:energia
cursoutn:x:1001:
[root@server ~]#

Un grupo de sistema es aquel que tiene un nmero de identidad de grupo GID por debajo del
500 CentOS y Red Hat Enterprise Linux o bien 1000 Fedora, openSUSE y SUSE Linux
Enterprise dependiendo del sistema operativo utilizado. El nmero de identidad de grupo
siempre se asigna automticamente, utilizando el valor consecutivo ms bajo que est disponible
en el sistema.

39
Permisos
Al ser GNU/Linux un sistema multiusuario, donde mucha gente puede estar usando el mismo disco
duro, el sistema operativo debe poder ordenar los archivos, sabiendo quin puede utilizar cada
archivo en el sistema.

Todo en GNU/Linux tiene un dueo y un grupo, el dueo es generalmente el que lo creo, aunque
se puede cambiar, y el grupo es un grupo de usuarios que tiene privilegios especiales sobre varios
archivos. Por ejemplo, para una empresa que usa un ordenador, y dentro de esa empresa, hay
departamentos de marketing, investigacin y direccin, es posible crear grupos de usuarios que
pertenezcan a uno o ms de esos grupos, y tener archivos y directorios que un grupo vea y otro no
(por ejemplo para evitar que los de marketing puedan visualizar los archivos del grupo
investigacin).

El dueo, adems puede tener otro tipo de privilegios sobre el grupo, e.j. puede adems de verlo,
modificarlo.

Para ver los permisos y dueos de un fichero utilizamos el comando ls -l, veremos que aparecen
varias columnas:

[energia@server ~]$ ls -l
total 12
-rw-rw-r--. 1 energia energia 39 nov 24 20:41 clase2
-rw-rw-r--. 1 energia energia 80 nov 25 16:29 clase3
-rwxrwxr-x. 1 energia energia 46 nov 24 22:41 ejecutable.sh
drwxrwxr-x. 2 energia energia 6 nov 25 16:44 isos

La primera letra ser una d si es un directorio, un guin si es un fichero normal y otro signo si es un
fichero especial: la letra 'l' significa que se trata de un enlace (link). Otros valores son s, p, b que se
refieren a sockets, tuberas (pipe) y dispositivos de bloque respectivamente.

Luego hay tres conjuntos de letras xrw, o en su lugar guiones, indican los permisos del dueo, del
grupo y del resto de usuarios.
La x indica que es un fichero ejecutable, un programa, y segn donde aparezca lo podrn ejecutar
el dueo, grupo y/o todos los usuarios.
La r indica quien puede leer ese fichero.
La w indica quien puede escribir (o modificar o borrar) ese fichero.
As puedes hacer que un documento solo lo puedas ver tu dndole permisos -rw------, o que lo
pueda ver y modificar la gente de tu grupo, y el resto del mundo solo leerlo, -rw-rw-r-.

Adems, en el listado podemos visualizar el nombre de usuario del dueo del fichero y el grupo.
Luego aparece tamao y fecha de creacin y por ltimo el nombre del fichero.

Permisos de Lectura
Cuando un usuario tiene permiso de lectura de un archivo significa que puede leerlo o visualizarlo,
bien sea con una aplicacin o mediante comandos. Ejemplo, si tenemos permiso de lectura sobre
el archivo examen.txt, significa que podemos ver el contenido del archivo. Si el usuario no tiene
permiso de lectura, no podr ver el contenido del archivo.

40
Cuando un usuario tiene permiso de lectura de una carpeta, significa que puede visualizar el
contenido de la carpeta, es decir, puede ver los archivos y carpetas que contiene, bien sea con el
comando 'ls' o con un explorador de archivos como Konqueror. Si el usuario no tiene permiso de
lectura sobre la carpeta, no podr ver lo que contiene.

El permiso de lectura se simboliza con la letra 'r' del ingls 'read'.

Permisos de Escritura
Cuando un usuario tiene permiso de escritura sobre un archivo significa que puede modificar su
contenido, e incluso borrarlo. Tambin le da derecho a cambiar los permisos del archivo mediante
el comando chmod as como cambiar su propietario y el grupo propietario mediante el comando
chown. Si el usuario no tiene permiso de escritura, no podr modificar el contenido del archivo.

Cuando un usuario tiene permiso de escritura sobre una carpeta, significa que puede modificar el
contenido de la carpeta, es decir, puede crear y eliminar archivos y otras carpetas dentro de ella.
Si el usuario no tiene permiso de escritura sobre la carpeta, no podr crear ni eliminar archivos ni
carpetas dentro de ella.
El permiso de escritura se simboliza con la letra 'w' del ingls 'write'.

Permisos de Ejecucin
Cuando un usuario tiene permiso de ejecucin de un archivo significa que puede ejecutarlo. Si el
usuario no dispone de permiso de ejecucin, no podr ejecutarlo aunque sea una aplicacin.

Los nicos archivos ejecutables son las aplicaciones y los archivos de comandos (scripts). Si
tratamos de ejecutar un archivo no ejecutable, dar errores.

Cuando un usuario tiene permiso de ejecucin sobre una carpeta, significa que puede entrar en
ella, bien sea con el comando 'cd' o con un explorador de archivos como Konqueror. Si no dispone
del permiso de ejecucin significa que no puede ir a dicha carpeta.

Otorgamiento de permisos
Los permisos solamente pueden ser otorgados a tres tipos o grupos de usuarios:

Al usuario propietario del archivo


Al grupo propietario del archivo
Al resto de usuarios del sistema (todos menos el propietario)

Se pueden dar permisos de lectura, escritura, ejecucin combinacin de ambos al usuario


propietario del archivo, al grupo propietario del archivo o al resto de usuarios del sistema.

41
Los 9 caracteres simbolizan los permisos del usuario propietario (3 caracteres), los permisos del
grupo propietario (3 caracteres) y los permisos del resto de usuarios (3 caracteres). Vienen
codificados con las letras r, w y x que se refieren a los permisos de lectura, escritura y ejecucin. Si
en lugar de aparecer dichas letras aparecen guiones significa que se carece de dicho permiso.

Cambiar dueo de un archivo


El comando que sirve para cambiar el propietario de un determinado archivo o directorio a nivel
de usuario es chown <usuario> <archivo>. Ten en cuenta que al cambiar el usuario propietario
de un fichero, el grupo propietario no variar. Aunque el nuevo usuario pertenezca a otro grupo
distinto, el grupo propietario del fichero seguir siendo el de antes.

Para cambiar el grupo chgrp <grupo> <archivo>, o todo de una vez, chown <usuario>:<grupo>
<archivo>

Cambiar permisos de un archivo


Para cambiar los permisos sobre un archivo hay que utilizar el comando:

# chmod <permisos> <nombre-de-archivos>

Los permisos se pueden representar de dos formas.


La primera es mediante las iniciales de a quin va dirigido el permiso (usuario=u, grupo=g, resto=o
(other)), seguido de un signo + si se quiere aadir permiso o un signo - si se quiere quitar y seguido
del tipo de permiso (lectura=r, escritura=w y ejecucin=x).

Veamos algunos ejemplos:

Para dar permiso de escritura al usuario propietario sobre el archivo 'examen.txt'


# chmod u+w examen.txt

Quitar permiso de escritura al resto de usuarios sobre el archivo 'examen.txt'


# chmod o-w examen.txt

Dar permiso de ejecucin al grupo propietario sobre el archivo '/usr/bin/games/tetris'


# chmod g+x /usr/bin/games/tetris

42
Dar permiso de lectura al grupo propietario sobre el archivo 'examen.txt'
# chmod g+r examen.txt

Se pueden poner varios permisos juntos separados por comas


# chmod u+w,g-r,o-r examen.txt

Para establecer que el grupo y todo el mundo puede leer y escribir el archivo examen.txt.
# chmod go+rw examen.txt

Para que los otros no pueden ni leer ni escribir ni ejecutar el archivo examen.txt.
# chmod o-rwx examen.txt

La segunda forma de representar los permisos es mediante un cdigo numrico cuya


transformacin al binario representara la activacin o desactivacin de los permisos. El cdigo
numrico est compuesto por tres cifras entre 0 y 7. La primera de ellas representara los
permisos del usuario propietario, la segunda los del grupo propietario y la tercera los del resto de
usuarios.

En binario, las combinaciones representan el tipo de permisos. El bit ms a la derecha (menos


significativo) se refiere al permiso de ejecucin (1=activar y 0=desactivar). El bit central se refiere
al permiso de escritura y el bit ms a la izquierda se refiere al permiso de lectura. La siguiente
tabla muestra las 8 combinaciones posibles:

Cd Binario Permisos efectivos


0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx

Si deseamos otorgar slo permiso de lectura, el cdigo a utilizar es el 4. Si deseamos otorgar slo
permiso de lectura y ejecucin, el cdigo es el 5. Si deseamos otorgar slo permiso de lectura y
escritura, el cdigo es el 6. Si deseamos otorgar todos los permisos, el cdigo es el 7. Si deseamos
quitar todos los permisos, el cdigo es el 0.

Veamos algunos ejemplos:

Dar todos los permisos al usuario y ninguno ni al grupo ni al resto


# chmod 700 examen.txt

Dar al usuario y al grupo permisos de lectura y ejecucin y ninguno al resto


# chmod 550 examen.txt

Dar todos los permisos al usuario, y permisos de lectura y ejecucin al grupo y al resto
# chmod 755 /usr/bin/games/tetris

Dar todos los permisos al usuario y de lectura al resto, sobre todos los archivos
# chmod 744 *

Cambiar permisos a todos los archivos incluyendo subcarpetas


# chmod -R 744

43

S-ar putea să vă placă și