すべてのユーザーに対してすべてのインタラクティブシェルが起動したときにコンテキスト警告メッセージを追加する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)
setup
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
。