로그인 시 "/etc/profile.d" 획득 방지

로그인 시 "/etc/profile.d" 획득 방지

어느 시점에서 이 별칭이 도입되었기 때문에 내 환경이 이상하게 동작하는 것을 발견했습니다 /etc/profile.d/vim.sh.

$ command -v vim
alias vim='__vi_internal_vim_alias'

파일을 탐색해 보면 /etc/profile.d필요한 모든 것이 이미 내 안에 있기 때문에 나에게는 아무 소용이 없습니다 .bashrc. 따라서 로그인 후 Bash는 불필요하게 오염된 상태가 되기 시작합니다. Bash가 디렉토리를 완전히 무시하고 .bashrc.

이것은 기업 환경이므로 운영 체제를 제어할 수 없으며 내 사용자 계정만 제어할 수 있습니다.

옵션이 있지만 --noprofilepasswd에 추가할 수 없는 것 같습니다.

$ chsh
Changing shell for philipp.
New shell [/bin/bash]
> /bin/bash --noprofile
chsh: "/bin/bash --noprofile" does not exist

SSH를 통해 bash --noprofile수동으로 추가할 수 있지만 정규 근무일 동안 수백 개가 아니더라도 수십 개의 SSH 연결이 있기 때문에 이는 지루한 일이 됩니다.

Bash가 상단의 해당 설정을 잊어버리고 .bashrc깨끗한 환경을 계속 사용하도록 할 수 있다면 문제가 되지 않을 것입니다. 내가 피하고 싶은 것은 /etc/profile.d내가 사용하는 모든 시스템에 추가될 수 있는 정의를 가지고 두더지 잡기 게임을 하는 것입니다.

답변1

제 생각엔 당신이 운이 좋지 않을 수도 있을 것 같아요. chsh선택할 수 있는 셸을 에 나열된 것으로 제한 /etc/shells하고 명령줄 인수를 지정할 수 없습니다.

당신이 조사할 수 있는 유일한 것은 /etc/shells읽을 수 없는 경우를 대비 하여 나열된 다른 쉘을 시도하는 것입니다 /etc/profile.d. 그러나 이것이 작동한다면 나는 놀랄 것입니다. unalias -a프로필 스크립트 상단에서 정의된 모든 별칭을 지울 수도 있습니다 .

답변2

"SSH를 통해 bash --noprofile을 수동으로 추가할 수 있습니다"라는 팁을 알려주셔서 감사합니다. 나는 이것을 내 로컬 ~/.ssh/config 파일에 추가하여 "수동으로...지루한" 부분을 피하기 위해 투명하게 만들 수 있다는 것을 발견했습니다. 예를 들어,

# ~/.ssh/config

host myserver
hostname myserver.domain.com
user myname
# Uncomment to choose whether to use login shell or not.
#RemoteCommand bash --login
#RemoteCommand bash --noprofile
RemoteCommand bash
RequestTTY yes

자세한 내용은 다음을 참조하세요.https://superuser.com/questions/1224938/ssh-host-is-a-login-shell-but-ssh-host-command-is-not

관련 정보