
すべてのユーザー (実際には、少なくとも bash ssh セッションと bash gnome ターミナルの両方) のすべての対話型シェルの起動時にコンテキスト警告メッセージを追加できる rpm をパッケージ化、インストール、アンインストールしたいと考えています。基本的に、コードはファイルが見つからない場合に警告メッセージを表示します。
さて、候補は/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 などのシステムを見てみると、次のことがわかります。
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
。