
모든 사용자에 대한 모든 대화형 쉘 시작 시 상황별 경고 메시지를 추가할 수 있는 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
.