Centosでyumを介してすべての対話型シェルからスクリプトをインストールおよび削除する方法は?

Centosでyumを介してすべての対話型シェルからスクリプトをインストールおよび削除する方法は?

すべてのユーザーに対してすべてのインタラクティブシェルが起動したときにコンテキスト警告メッセージを追加する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セッション)には適していません。
私はそれが正しいと思います/etc/skel/.bashrc + exisiting .bashrcが、これらのファイルにコードを追加/削除するのは安全ではないと思います。ファイルのyum配置rpmと削除は、テキストファイルを安全に変更するように設計されていないことです。
私は次のようなものが欲しい/etc/bashrc.d/...

私はどこに行くべきですか安全な設置すべての対話型シェルで使用できる警告メッセージ安全な取り外し?安全であることは、不要なものを削除しないことを意味します。

ベストアンサー1

ファイルはrpmにファイル/etc/bashrcとして表示されます。つまり、更新すると%config(noreplace)setupyumいいえそれを交換してください。パッケージのアップグレード時に/etc/bashrcアップデートがあるとyum作成されます/etc/bashrc.rpmnewできる必要に応じて安全に修正してください。

しかし、それは不要なようです。/etc/bashrccentos/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

おすすめ記事