Como explicamos previamente, Linux es un sistema operativo multi-usuario. De modo que nos permite disponer de diferentes cuentas de usuario, que pueden ejecutarse simultáneamente pero con entornos diferentes.
Por tanto, para sacar el máximo partido a este SO conviene saber configurar cuentas de usuarios y gestionar grupos, así como variables de entorno y permisos.
El sistema de usuarios de Linux
Linux dispone de dos comandos que nos permitirán identificar usuarios:
- whoami identificará al usuario actual.
- who identificará a todos los usuarios logueados.
La configuración del entorno de usuario se hace en los archivos ubicados en /etc. Además, puede sobreescribirse en el directorio de inicio de cada usuario. Estos archivos se evalúan en el siguiente orden:
- /etc/profile
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
Si se encuentra alguno de estos archivos se ignorarán el resto. Además, existe el archivo ~/.bashrc, que contiene la configuración que se cargará cada vez que se abra una terminal, tras haber hecho el login inicial.
Gestión de usuarios desde la CLI
Linux expone algunos comandos mediante los que podemos gestionar usuarios:
- useradd - añade un usuario. Es posible que necesites pasarle la flag --create-home para que cree el directorio raíz del usuario.
- userdel - elimina un usuario. Habrá que pasarle la flag -r para eliminar su directorio raíz.
- passwd <user> - establece la contraseña del usuario.
Los grupos de usuarios
El concepto de grupo de usuarios hace referencia a un conjunto de usuarios que comparten accesos. Se gestionan desde el archivo /etc/group. Además, un usuario puede pertenecer a varios grupos.
Algunos de los comandos disponibles son:
- groups - imprime los grupos de usuarios existentes
- groupadd - añade un grupo de usuarios
- groupdel - elimina un grupo de usuarios
- usermod - asigna grupos de usuarios al usuario indicado
Alias
Una utilidad del archivo ~/.bashrc es la creación de alias. Se trata de una especie de atajo para los comandos más frecuentemente utilizados. Por ejemplo, puede ser útil a la hora de empaquetar comandos de git que se utilizan habitualmente.
Para crear un alias tan solo debemos editar el archivo ~/.bashrc, incluyendo el alias seguido de un signo = y la definición del comando, entre comillas cuando incluya espacios. Por ejemplo:
sn=’shutdown now’
A continuación deberemos reiniciar la consola o refrescar nuestra configuración:
source ~/.bashrc
Las variables de entorno en Linux
Las variables de entorno contienen información que se puede utilizar en comandos, scripts o aplicaciones. Podemos ver las variables de nuestro entorno con los comandos set, env o export.
Podemos establecer variables de entorno temporales con el comando:
export VARIABLE=value
O bien hacerlas permanentes editando el archivo ~/.bashrc y añadiendo la anterior línea. De nuevo, si optamos por editar este archivo tendremos que refrescar los cambios con el comando source ~/.bashrc.
Si solo necesitamos pasárselas a un comando, bastará con que incluyamos la variable de entorno antes del comando.
Permisos en Linux
En los sistemas UNIX cada archivo se asocia a su propietario y a un grupo, atribuyéndoles permisos de lectura, escritura y ejecución. Podemos alterar estos permisos con los siguientes comandos:
- chown - cambia el propietario de un archivo o directorio.
- chgrp - cambia la propiedad del grupo.
- chmod - cambia los permisos del archivo.
Podemos comprobar los permisos de un archivo o directorio añadiendo la flag -l al comando ls. Los veremos en tres grupos: usuario, grupos y otros.
Para añadir un permiso debemos indicar a quién le atribuimos qué permiso:
chmod u+x <filename>
También podemos eliminarlos:
chmod u-x <filename>
O podemos utilizar la numeración, basada en los permisos a conceder, donde cada posición indica un agente (usuario-grupo-otros) y cada número los permisos a conceder, siendo una suma de:
- 4 si se quieren conceder permisos de lectura.
- 2 si se quieren conceder permisos de escritura.
- 1 si se quieren conceder permisos de ejecución.
Por ejemplo:
chmod 745 <filename>
Concedería:
- Permisos de lectura, escritura y ejecución al usuario.
- Permisos de lectura al grupo.
- Y permisos de ejecución a otros.
Resumen
- Linux es un sistema multiusuario. Podemos tener varios usuarios activos a la vez, cada uno de ellos con su propio entorno y permisos. Además, podemos facilitar su administración agrupándolos.
- Cada archivo está asociado a un usuario y grupo propietarios y tiene una serie de permisos, que podemos manipular por medio de la terminal.
Comandos y shortcuts
- whoami - identifica al usuario actual
- who - identifica a los usuarios logueados
- alias - imprime los alias actuales
- useradd - añade un usuario.
- userdel - elimina un usuario.
- passwd <user> - establece la contraseña del usuario.
- groups - imprime los grupos de usuarios existentes.
- groupadd - añade un grupo de usuarios.
- groupdel - elimina un grupo de usuarios.
- usermod - asigna grupos de usuarios al usuario indicado.
- set, env o export - muestran las variables de entorno
- chown - cambia el propietario de un archivo o directorio.
- chgrp - cambia la propiedad del grupo.
- chmod - cambia los permisos del archivo.