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.

관련 정보