Capitulo07 Linux PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 12

Capítulo 7

Entorno de usuario.
Anexo Linux

Guion-resumen

1. Cuentas 3. Recuperar comandos utilizados con


anterioridad. El historial
1.1. Identificar al usuario actual
3.1. Utilizar las variables de entorno
1.2. Usuarios y grupos
del historial
1.3. La cuenta del usuario root
3.2. Encontrar y utilizar comandos
1.4. Los ficheros de arranque utilizados previamente
2. Variables de entorno 3.3. Ejecutar comandos utilizados
2.1. Configuración de las variables de anteriormente
entorno 3.4. Atajos
2.2. La variable HOME 4. Alias
2.3. La variable PATH 5. La propiedad de los ficheros
2.4. La variable PS1 5.1. Tipos de permisos sobre archivos
2.5. La variable SHELL

7-2
Entorno de usuario

1. Cuentas
1.1. Identificar al usuario actual
Debido a que Linux es un sistema multiusuario, es posible que más de un usuario
pueda iniciar su sesión en un mismo momento.

Para conocer qué usuarios cuentan con una sesión iniciada puede utilizarse el coman-
do who (si se añade la opción –a mostrará información más detallada).

Para identificar al usuario actual puede utilizarse el comando whoami.

Puede utilizarse el comando id para conocer información del usuario actual.

1.2. Usuarios y grupos


Los grupos son colecciones de cuentas de usuario que comparten ciertos permisos. El
control de los miembros de los grupos se realiza en el fichero /etc/group.

Por defecto, cada usuario pertenece a un grupo principal. Cuando el usuario inicia
sesión en el sistema se establece su membresía para que todos los miembros disfruten del
mismo nivel de acceso y privilegios sobre los recursos. De este modo, los permisos sobre
archivos y directorios pueden ser modificados a nivel de grupo.

A todos los usuarios de Linux se les asigna un identificador único de usuario (uid) y
también uno o más de grupo (gid), incluyendo uno por defecto que coincide con el iden-
tificador de usuario. Por ejemplo, en el caso de las distribuciones de la familia Fedora, los
identificadores de usuario comienzan en el número 500; otras distribuciones empiezan en
el 1000. La asociación entre los identificadores y los nombres se hace gracias a los archivos
/etc/passwd y /etc/group.

La utilidad de los grupos reside en concentrar cuentas de usuario con intereses comu-
nes en materia de derechos de acceso, privilegios sobre recursos y consideraciones de
seguridad.

7-3
Anexo Linux

Figura 7.1 Ejemplo del contenido del fichero /etc/group

1.2.1. Añadir y eliminar usuarios


Aunque los entornos gráficos posibilitan ambas acciones, es muy útil conocer los
comandos que permiten añadir y eliminar usuarios y grupos, así como gestionar la mem-
bresía. Únicamente el usuario root puede añadir y eliminar usuarios y grupos.

El comando useradd permite añadir un nuevo usuario. Para eliminarlo se utiliza userdel.
El uso más sencillo sería el siguiente:

sudo useradd usuario1 crea el nuevo usuario y establece por defecto a /home/
usuario1 como su directorio personal. Además, añadiría una línea al fichero /etc/
passwd similar a la siguiente:

usuario1:x:502:502::/home/usuario1:/bin/bash

La eliminación de este usuario se realizaría aplicando el comando:

userdel usuario1 eliminaría el usuario pero mantendría intacto el directorio


/home/usuario1. Se trata de una característica que puede ser de utilidad en
el caso de desactivación temporal de una cuenta de usuario. Para eliminar el
directorio es preciso añadir la opción –r al comando userdel.

1.2.2. Añadir y eliminar grupos


La acción de añadir un nuevo grupo se realiza con el comando groupa-
dd.

sudo /usr/sbin/groupadd grupo1

7-4
Entorno de usuario

La eliminación del grupo se llevará a cabo con el comando groupdel:

sudo /usr/sbin/groupdel grupo1


Es posible añadir usuarios a grupos que ya existen mediante el uso del comando
usermod. En este caso, puede resultar conveniente comprobar a qué grupos pertenece
dicho usuario antes de crearlo:

groups usuario1 mostrará la membresía del usuario usuario1.


Posteriormente, podrá añadirse a otro grupo:

sudo /usr/sbin/usermod –G grupo2 usuario1 añade usuario1 al grupo grupo2.


Las acciones realizadas por estas utilidades provocan la actualización del fichero /etc/
group.

De igual modo, el comando groupmod puede utilizarse para cambiar las propiedades
de un grupo, como su identificador (opción –g) o su nombre (opción –n).

La eliminación de un usuario de un grupo requiere una pequeña trampa, pues es


necesario indicarle su membresía omitiendo el grupo que ya no se requiere:

sudo /usr/sbin/usermod –G grupo1 usuario1 al indicar que el usuario1 pertene-


cerá al grupo1 se eliminará su pertenencia al grupo de los ejemplos anteriores,
grupo2.

1.3. La cuenta del usuario root


Se trata de una cuenta con pleno acceso a todo el sistema. En otros sistemas es
comúnmente conocida como la cuenta del administrador. En Linux también se conoce
como la cuenta del superusuario.

Es muy importante ser cuidadoso a la hora de otorgar accesos de root a un usuario.


Una gran parte de los ataques consiste en lograr un nivel de privilegios que permita realizar
acciones con privilegios de root en los sistemas atacados.

No suele estar justificada la utilización de la cuenta de root para la realización de tareas,


para ello se recomienda la asignación temporal de privilegios mediante el uso de sudo.

Cuando se busca un incremento de privilegios, puede utilizarse el comando su (switch


user o substitute user) que, en una nueva interfaz de línea de comandos, permitirá ejecutar
tareas como otro usuario que ha de indicarse en el comando (que será root en la mayoría
de ocasiones).

La opción de contar con privilegios de root es arriesgada, pues cualquier


error puede resultar en la eliminación de archivos críticos para el sistema, así
como la posibilidad de sufrir brechas en la seguridad del mismo.

7-5
Anexo Linux

Para contar con privilegios de usuario root, únicamente se precisa teclear el comando
su y proporcionar la contraseña de root.

Es menos arriesgado el uso de sudo y por ello se recomienda. Además, ha de ser


habilitado para cada usuario aunque en algunas distribuciones como Ubuntu lo activa por
defecto para, al menos, un usuario principal, o solicita habilitarlo en tiempo de instalación.

Para ejecutar un comando se teclea en la CLI sudo comando. Una vez finalizada su
ejecución, se vuelve a contar con los privilegios del usuario no privilegiado.

Los archivos de configuración de sudo se almacenan en el fichero /etc/sudoers y tam-


bién en el directorio /etc/sudoers.d/. Por defecto el directorio sudoers.d está vacío.

1.4. Los ficheros de arranque


En Linux, el intérprete de comandos (en inglés shell) utiliza uno o más archivos de
arranque para configurar el entorno. Los ficheros ubicados en el directorio /etc definen
la configuración global para todos los usuarios mientras que los ficheros de su directorio
personal pueden incluir o sobrescribir las configuraciones globales.

Los ficheros de arranque pueden realizar las siguientes funciones:

— Personalizar la petición de entrada de datos (prompt) del usuario.


— Definir atajos y alias para utilizar en la línea de comandos.
— Establecer el editor de texto por defecto.
— Establecer el camino (en inglés path) para encontrar programas ejecutables.
La primera vez que se inicia sesión se lee y evalúa el fichero /etc/profile. Posteriormente
se buscan (si existen) los siguientes ficheros:

1. ~/.bash_profile
2. ~/.bash_login
3. ~/.profile
El intérprete de Linux evalúa el primer fichero que localiza e ignora el resto. Las distin-
tas distribuciones pueden utilizar diferentes archivos de arranque.

No obstante, no se lleva a cabo un inicio completo de sesión cada vez que se abre
una nueva consola o una terminal gráfica, sino que únicamente se lee y evalúa el fichero
~/.bashrc. Aunque este fichero no forma parte de los que se leen y evalúan al inicio de la
sesión, la mayoría de las distribuciones incluyen una llamada al mismo dentro de las líneas
de ejecución de alguno de los tres. En las distribuciones Ubuntu, openSuse y
CentOS, el usuario debe realizar algunos cambios en el archivo ~/.bash_pro-
file para incluir el fichero ~/.bashrc.

7-6
Entorno de usuario

2. Variables de entorno
Se trata de entidades que poseen valores específicos y que pueden ser interpretadas
por un intérprete de comandos, por ejemplo bash. Algunas forman parte del sistema y
otras pueden ser configuradas por el usuario, bien desde la línea de comandos bien en el
arranque o mediante el uso de scripts. En definitiva, una variable de entorno no es más que
una cadena de caracteres que contiene información utilizada por una o más aplicaciones.
Existen diversos métodos para visualizar el valor de estas variables, por ejemplo los
comandos set, env o export. En función del estado de un sistema, el comando set podrá
mostrar más información que los otros dos.

Figura 7.2 Ejemplo de la ejecución del comando set

2.1. Configuración de las variables de entorno


Por defecto, las variables creadas dentro de un script únicamente están disponibles
en la shell actual. De este modo, los procesos hijos (también conocidos como sub-shells)
no tendrán acceso a los valores que hayan sido configurados o modificados. Para que los
procesos hijos puedan acceder a estos valores se emplea el comando export:

COMANDO TAREA

echo $nombre_de_variable Mostrar el valor de una variable.

export VARIABLE=valor (también VARIABLE=-


Exportar el valor de una variable.
valor; export VARIABLE)

Editar el fichero ~/.bashrc y añadir la línea Añadir una variable de forma per-
export VARIABLE=valor manente.

Tabla 7.1 Métodos de configuración de los valores de las variables de entorno

7-7
Anexo Linux

2.2. La variable HOME


Esta variable representa el directorio personal del usuario. Un usuario podrá moverse
desde el directorio de trabajo actual a su directorio personal simplemente ejecutando el
comando cd sin argumentos. Conviene recordar que el carácter tilde (~) también puede
utilizarse como abreviatura de $HOME. De este modo, cd $HOME y cd ~ son equivalentes.

2.3. La variable PATH


Un path, camino o ruta, es una lista ordenada de directorios que es comprobada por
un comando cuando se le ordena ejecutar un programa o un script. En la ruta, cada direc-
torio se encuentra separado el resto por dos puntos (:).

Por ejemplo, para incluir en la ruta del usuario1 el directorio bin puede ejecutarse:

export PATH=$HOME/bin:$PATH

echo $PATH mostraría /home/usuario1/bin:/usr/local/bin:/usr/bin:/bin/usr

2.4. La variable PS1


La variable PS (Prompt Statement) se utiliza para personalizar la petición de entrada
de datos (prompt) en la ventana del terminal. PS1 es la variable principal que controla
el aspecto que tendrá la prompt de la línea de comandos. Los caracteres que pueden ser
incluidos en PS1 son:

• \u N nombre de usuario.

• \h N nombre de host.

• \w N directorio actual de trabajo.

• \! N número del histórico del comando.

• \d N fecha.

Para utilizarlos es necesario emplear las comillas simples antes y después:

export PS1=’\u@\h:\w$ ’

2.5. La variable SHELL


Esta variable indica el intérprete de línea de comandos (shell) por defecto, esto es, el
programa que gestiona todo lo que se teclea en la CLI y que, habitualmente,
es bash.

7-8
Entorno de usuario

3. Recuperar comandos utilizados con anterioridad. El historial


El intérprete bash mantiene un registro de los comandos utilizados con anterioridad
que almacena en un buffer denominado historial. Es posible recuperar estos comandos
utilizando las teclas de flecha arriba y flecha abajo. Además, la ejecución del comando
history permite visualizar la lista de comandos almacenados, mostrando en último lugar el
utilizado más recientemente.

3.1. Utilizar las variables de entorno del historial


Existen variables de entorno que pueden utilizarse para obtener información sobre el
archivo que mantiene el historial:

• HISTFILE N contiene la ubicación del archivo del historial.

• HISTFILESIZE N contiene el máximo número de líneas en el fichero del historial.

• HISTSIZE N contiene el máximo número de líneas en el archivo del historial para


la sesión actual.

3.2. Encontrar y utilizar comandos utilizados previamente


Existen teclas y combinaciones que permiten realizar esas tareas:

TECLA O COMBINACIÓN UTILIZACIÓN

Teclas de flecha arriba/abajo Navega por la lista de comandos ejecutados previamente.

!! Ejecuta el último comando ejecutado.

CTRL + R Busca comandos utilizados previamente.

Tabla 7.2 Teclas utilizadas para búsqueda en el historial de comandos

3.3. Ejecutar comandos utilizados anteriormente


Como en el epígrafe anterior, existen teclas y combinaciones que permiten, en este
caso, la ejecución de comandos utilizados anteriormente y que evitan la obligación de
teclearlos nuevamente.

La más utilizada es probablemente la combinación del carácter admiración de cierre


seguido por un número que coincide con el mostrado en el historial:

!127 ejecutará el comando numerado con el número 127 en el


historial.

7-9
Anexo Linux

3.4. Atajos
Es posible utilizar atajos para llevar a cabo diferentes tareas de forma rápida. Algunos
de los más conocidos y utilizados son:

ATAJO UTILIZACIÓN

CTRL + C Detiene el proceso actual.

TAB Autocompleta archivos, directorios y archivos binarios.

CTRL + L Limpia la ventana de datos.

CTRL + D Abandona la shell actual.

Tabla 7.3 Ejemplos de atajos más comunes

4. Alias
Es posible crear comandos personalizados o modificar el comportamiento de los
existentes mediante la creación de alias. En su mayoría, los alias se ubican en el fichero
~/.bashrc, de modo que se encuentren disponibles para cualquier CLI que utilice el usuario.

alias muestra la lista de alias definidos.

5. La propiedad de los ficheros


Tanto en Linux como en otros sistemas operativos basados en UNIX, cada archivo se
encuentra asociado a un usuario que es su propietario. Asimismo, cada archivo está asocia-
do a un grupo, que también cuenta con ciertos derechos o permisos sobre el archivo, por
ejemplo lectura, escritura o ejecución.

La gestión de permisos sobre usuarios y grupos puede realizarse con los siguientes
comandos:

chown se utiliza para cambiar el usuario de un fichero o de un directorio.


chgrp sirve para cambiar la propiedad a nivel de grupo.
chmod se utiliza para cambiar los permisos sobre un fichero. Puede hacerse sepa-
radamente para el propietario (owner user, u), grupo (group, g) y para el resto
(other, o).

7-10
Entorno de usuario

Figura 7.3 Ejemplo de utilización del comando chown en el fichero file1 cuyo propietario
inicial era el usuario test1

Figura 7.4 Ejemplo de utilización del comando chgrp en el fichero file2 que inicialmente
formaba parte del grupo test1

7-11
Anexo Linux

5.1. Tipos de permisos sobre archivos


Existen tres tipos de permisos para los archivos, lectura (read), escritura (write) y ejecu-
ción (execute) que, habitualmente, son representados como rwx. Estos permisos se aplican
a tres grupos de propietarios: usuario propietario (u), grupo (g) y otros (o).

El comando chmod puede utilizarse de varias formas. Es aconsejable consultar su pági-


na de manual para conocerlas. La más habitual consiste en un algoritmo bastante sencillo,
en el que un único dígito sirve para especificar los tres permisos para cada una de las tres
entidades comentadas anteriormente:

— Permiso de lectura.
— Permiso de escritura.
— Permiso de ejecución.
De este modo, el valor 7 significará que se otorgan permisos de lectura, escritura y
ejecución, el valor 6 otorgará permisos de lectura y escritura y el valor 5 que se otorgan
permisos de lectura y ejecución.

Cuando se utilice el comando chmod será necesario proporcionar tres dígitos para
otorgar permisos:

chmod 755 nombre_archivo otorgará permisos de rwx (7) al usuario, permisos de


rx (5) al grupo y permisos de rx (5) al resto.

7-12

También podría gustarte