
Me gustaría empaquetar, instalar y desinstalar un rpm que pueda agregar un mensaje de advertencia contextual en el inicio de todos los shells interactivos para todos los usuarios (en realidad, al menos tanto la sesión bash ssh como la terminal bash gnome). Básicamente, el código mostraría el mensaje de advertencia si falta un archivo.
Bueno, los candidatos son /etc/bashrc
, /etc/profile
, /etc/profile.d/myscript.sh
, /etc/skel/.bash_profile
, /etc/skel/.bashrc
.
La forma más sencilla sería instalar algo /etc/profile.d
pero realmente no satisface mis necesidades (sesión ssh bash).
Creo que el lugar correcto es, /etc/skel/.bashrc + exisiting .bashrc
pero no me siento seguro al agregar/eliminar mi código a/de estos archivos... Tengo entendido que yum
colocar rpm
y eliminar archivos; no están diseñados para modificar archivos de texto de forma segura.
Me gustaría algo como /etc/bashrc.d/
...
¿Dónde deberíainstalar de forma segurael mensaje de advertencia para que pueda estar disponible en todos los shells interactivos ydesinstalado de forma segura? Por seguridad me refiero a sin eliminar nada no deseado.
Respuesta1
El archivo /etc/bashrc
está marcado como %config(noreplace)
archivo en el setup
rpm. Esto significa que si lo actualiza yum
,noreemplázalo. Al actualizar un paquete, si hay uno actualizado /etc/bashrc
, yum
se creará /etc/bashrc.rpmnew
. Vos tambienpodermodifíquelo de forma segura si lo desea.
Pero parece que eso no será necesario. Eche un vistazo a /etc/bashrc
su sistema centos/rhel/fedora/etc y encontrará:
if ! shopt -q login_shell ; then # We're not a login shell
[...]
for i in /etc/profile.d/*.sh; do
if [ -r "$i" ]; then
if [ "$PS1" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
[...]
Ese código garantiza que los archivos /etc/profile.d
se ejecuten tanto para shells de inicio de sesión (en cuyo caso se ejecutan desde /etc/profile
ellos) como para shells sin inicio de sesión (en cuyo caso este bucle se encarga de ejecutarlos).
En otras palabras, ustedyatiene un /etc/bashrc.d
, y se llama /etc/profile.d
.