Как установить и удалить скрипт, полученный во всех интерактивных оболочках через yum на Centos?

Как установить и удалить скрипт, полученный во всех интерактивных оболочках через yum на Centos?

Я хотел бы упаковать, установить и удалить RPM-пакет, который может добавлять контекстное предупреждающее сообщение при запуске всех интерактивных оболочек для всех пользователей (на самом деле, по крайней мере, как сеанс bash ssh, так и терминал bash gnome). По сути, код будет отображать предупреждающее сообщение, если файл отсутствует.

Ну, кандидаты — это /etc/bashrc, /etc/profile, /etc/profile.d/myscript.sh, /etc/skel/.bash_profile, /etc/skel/.bashrc.

Самый простой способ — установить что-то в , /etc/profile.dно это не совсем соответствует моим потребностям (ssh bash session).
Я думаю, что это правильное место, /etc/skel/.bashrc + exisiting .bashrcно я не чувствую себя в безопасности, добавляя/удаляя свой код в/из этих файлов... Насколько я понимаю, yumи rpmputs и remove файлы; они не предназначены для безопасного изменения текстовых файлов.
Я бы хотел что-то вроде /etc/bashrc.d/...

Где я долженбезопасно установитьпредупреждающее сообщение, чтобы оно было доступно во всех интерактивных оболочках ибезопасно удалено? Под безопасностью я подразумеваю отсутствие удаления чего-либо нежелательного.

решение1

Файл /etc/bashrcотмечен как %config(noreplace)файл в setuprpm. Это означает, что если вы его обновите, yumбудетнетзаменить его. При обновлении пакета, если есть обновленный /etc/bashrc, yumсоздаст /etc/bashrc.rpmnew. Так что выможетпри желании можно безопасно изменить его.

Но, похоже, это не понадобится. Взгляните на /etc/bashrcсвою систему centos/rhel/fedora/etc, и вы найдете:

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
[...]

Этот код гарантирует, что файлы /etc/profile.dзапускаются как для оболочек входа в систему (в этом случае они запускаются из /etc/profileдругих оболочек), так и для оболочек без входа в систему (в этом случае этот цикл заботится об их запуске).

Другими словами, выужеесть /etc/bashrc.d, и он называется /etc/profile.d.

Связанный контент