Table of Contents
Comprensión de los archivos de inicialización de shell y los perfiles de usuario en Linux
Linux es un sistema de tiempo compartido multiusuario, lo que implica que más de un usuario puede iniciar sesión y utilizar un sistema. Y los administradores del sistema tienen la tarea de administrar varios aspectos de cómo los diferentes usuarios pueden operar un sistema en términos de instalación/actualización/eliminación de software, programas que pueden ejecutar, archivos que pueden ver/editar, etc.
Linux también permite que los entornos de los usuarios se creen o mantengan de dos formas principales: utilizando configuraciones de todo el sistema (globales) y específicas del usuario (personales). Normalmente, el método básico para trabajar con un sistema Linux es el shell, y el shell crea un entorno en función de ciertos archivos que lee durante su inicialización después de un inicio de sesión de usuario exitoso.
Lectura sugerida: Cómo establecer variables de entorno en Linux
En este artículo, explicaremos los archivos de inicialización de shell en relación con los perfiles de usuario para la gestión de usuarios locales en Linux. Le haremos saber dónde guardar las funciones de shell personalizadas, los alias, las variables y los programas de inicio.
Importante. para este propósito artículo, nos centraremos en bash. un shell compatible sh. que es el shell más popular/utilizado en los sistemas Linux.
Si está utilizando un programa de shell diferente (zsh, ash, fish, etc.), lea su documentación para obtener más información sobre algunos de los archivos relacionados de los que hablaremos aquí.
Inicialización de Shell en Linux
freestar.config.enabled_slots.push
Cuando se invoca el shell, hay ciertos archivos de inicialización/inicio que lee que ayudan a configurar un entorno para el el propio shell y el usuario del sistema; que son funciones predefinidas (y personalizadas), variables, alias, etc.
Hay dos categorías de archivos de inicialización leídos por el shell:
- sistema-archivos de inicio amplios. las tesis contienen configuraciones globales que se aplican a todos los usuarios del sistema y, por lo general, se encuentran en el directorio /etc. Incluyen: /etc/profiles. y /etc/bashrc. o /etc/bash.bashrc.
- archivos de inicio específicos del usuario:. estas configuraciones de tienda que se aplican a un solo usuario en el sistema y normalmente se encuentran en el directorio de inicio de los usuarios como archivos dot. Pueden anular las configuraciones de todo el sistema. Incluyen: .profiles. .bash_profile. .bashrc. y .bash_login.
Una vez más, el shell se puede invocar en tres modos posibles:
1. Shell de inicio de sesión interactivo
El shell se invoca después de que un usuario inicie sesión con éxito en el sistema, utilizando /bin/login. después de leer las credenciales almacenadas en el archivo /etc/passwd.
Cuando el shell se inicia como un shell de inicio de sesión interactivo, lee /etc/profile. y su equivalente ~/.bash_profile. específico del usuario.
Shell de inicio de sesión interactivo de Linux 2. Shell interactivo sin inicio de sesión
El shell se inicia con el comando-línea usando un programa de shell, por ejemplo $/bin/bash. o $/bin/zsh. También se puede iniciar ejecutando el comando /bin/su.
Además, un shell interactivo que no sea de inicio de sesión también se puede invocar con un programa de terminal como konsole. terminator o xterm desde dentro de un entorno gráfico.
Cuando el shell se inicia en este estado, copia el entorno del shell padre y lee el ~/.bashrc. para obtener instrucciones de configuración de inicio adicionales.
$ su # ls-la
Shell interactivo sin inicio de sesión 3. Shell no interactivo
Se invoca el shell cuando se está ejecutando un script de shell. En este modo, está procesando una secuencia de comandos (conjunto de comandos/funciones de shell o genéricos del sistema) y no requiere la entrada del usuario entre comandos a menos que sea de otra manera. Opera usando el entorno heredado del shell padre.
Comprensión de los archivos de inicio del shell en todo el sistema
En esta sección, mostraremos más luz sobre los archivos de inicio del shell que almacenan configuraciones para todos usuarios en el sistema y estos incluyen:
El archivo/etc/profile. almacena configuraciones de entorno de todo el sistema y programas de inicio para la configuración de inicio de sesión. Todas las configuraciones que desee aplicar a los entornos de todos los usuarios del sistema deben agregarse en este archivo.
Por ejemplo, puede establecer su variable de entorno PATH global aquí.
# cat/etc/perfil
Archivo de configuración de todo el sistema
Nota. En ciertos sistemas como RHEL/CentOS 7. recibirán advertencias como “No se recomienda cambiar este archivo a menos que sepa lo que está haciendo. Es mucho mejor crear un script de shell .sh. personalizado en /etc/profile.d/ para realizar cambios personalizados en su entorno, ya que esto evitará la necesidad de fusionar actualizaciones futuras ”.
El directorio /etc/profile.d/: almacena los scripts de shell que se utilizan para realizar cambios personalizados en su entorno:
# cd/etc/profile .d/# ls-l
Almacena scripts de shell personalizados
El /etc/bashrc. o archivo /etc/bash.bashrc. contiene funciones para todo el sistema y ali ases, incluidas otras configuraciones que se aplican a todos los usuarios del sistema.
Si su sistema tiene varios tipos de shells, es una buena idea poner configuraciones específicas de bash en este archivo.
# cat/etc/bashrc
Alias y funciones de todo el sistema
Comprensión de los archivos de inicio de shell específicos del usuario
A continuación, explicaremos más sobre los archivos de punto de inicio de shell (bash) específicos del usuario, que almacenan configuraciones para un usuario en particular en el sistema, están ubicados en el directorio de inicio de un usuario e incluyen:
# ls-la
Archivos de configuración específicos del usuario
El ~/.bash_profile. archivo: almacena el entorno específico del usuario y las configuraciones de los programas de inicio. Puede configurar su variable de entorno PATH personalizada aquí, como se muestra en la captura de pantalla a continuación:
# cat ~/.bash_profile
User Bash Profile
El ~/.bashrc. archivo: este archivo almacena alias y funciones específicas del usuario.
# cat ~/.bashrc
Archivo Bashrc de usuario
El archivo ~/.bash_login. contiene configuraciones específicas que normalmente solo se ejecutan cuando inicia sesión en el sistema. Cuando el ~/.bash_profile. está ausente, bash leerá este archivo.
El archivo ~/.profile. este archivo se lee en la ausencia de ~/.bash_profile. y ~/.bash_login. puede almacenar las mismas configuraciones, a las que también pueden acceder otros shells del sistema. Debido a que aquí hemos hablado principalmente de bash, tenga en cuenta que otros shells podrían no entender la sintaxis de bash.
A continuación, también explicaremos otros dos archivos importantes específicos del usuario que no son necesariamente archivos de inicialización de bash:
El archivo ~/.bash_history. bash mantiene un historial de comandos que han sido ingresados por un usuario en el sistema. Esta lista de comandos se guarda en el directorio de inicio del usuario en el archivo ~/.bash_history.
Para ver esta lista, escriba:
$ history o $ history | menos
Ver los últimos comandos ejecutados
El archivo ~/.bash_logout. no se usa para el inicio del shell, pero almacena instrucciones específicas del usuario para el procedimiento de cierre de sesión. Se lee y se ejecuta cuando un usuario sale de un shell de inicio de sesión interactivo.
Un ejemplo práctico sería borrar la ventana del terminal al cerrar la sesión. Esto es importante para las conexiones remotas, que dejarán una ventana limpia después de cerrarlas:
# cat bash_logout
Borrar historial después de cerrar sesión
Para obtener información adicional, consulte el contenido de estos archivos de inicialización de shell en varias distribuciones de Linux y también lea la página de manual de bash:
¡Eso es todo por ahora! En este artículo, explicamos los archivos de inicio/inicialización de shell en Linux. Utilice el formulario de comentarios a continuación para respondernos.