저는 을 사용하고 tcsh
있으며 특정 프로젝트의 경우 팀의 모든 구성원이 동일한 사용자를 사용하여 서버에 연결하고 있습니다. (이것은 우리가 변경할 수 없는 것입니다.)
.tcshrc_cust
이는 해당 컴퓨터에 연결할 때 첫 번째 작업으로 로드하는 자체 .tcshrc 파일(예: )이 있는 일부 사용자 지정 환경 변수와 별칭을 원하기 때문에 발생합니다.
source .tcshrc_cust
비록 이것이 잘 작동하지만 그것을 사용할 때 문제가 발생합니다 vim
. vim 내부에서 ( vim 사용) 쉘에 들어가면 :sh
결국 사용자 정의 환경이 없는 일반 쉘이 됩니다. 변하기 쉬운. 그리고 별칭.
해당 컴퓨터에서 다른 사용자를 사용하는 것 외에 다른 솔루션이 있습니까?
솔루션(@Shawn 제공):
.ssh/authorized_keys
내 키를 접두사로 추가합니다 .
command="setenv subuser noz; tcsh"
.tcshrc
파일 끝에 다음 줄을 작성하십시오 .
if ($?subuser) then
source .tcshrc_$subuser;
endif
이제 모든 것이 잘 작동합니다.
답변1
.tcshrc
특수 환경 변수(예: subuser
)를 확인하고 조건부로 이를 수행할 수 있습니다 source .tcshrc_cust
. 로그인할 때 를 실행하면 subuser=nozimica tcsh
해당 환경 변수를 가져오고 사용자 정의 rc 스크립트가 실행됩니다. 또한 vim :sh
명령으로도 충분합니다. 더 멋지게 만들 수도 있고 source .tcshrc_$subuser
그렇게 하면 누구나 할 수 있습니다.
subuser=nozimica tcsh
SSH를 통해 로그인 시 실행되는 부분을 건너뛸 수 있습니다. SSH 키 인증이 설정된 경우 ~/.ssh/authorized_keys
서버에서 키 앞에 접두사를 추가하면 command="subuser=nozimica tcsh"
SSH가 명령을 실행합니다.
답변2
SSH를 사용하여 로컬 컴퓨터에서 환경 변수를 보낼 수 있습니다.
예를 들어 ( version export FOO_USER="$USER"
에서 ) 또는 (명령줄에서)을 로컬 컴퓨터에 입력합니다. 다음을 포함하도록 콘텐츠를 편집하세요 .tcsh
.bash_profile
FOO_USER=joe ssh remote-host
~/.ssh/config
SendEnv LANG LC_* FOO_USER
.bash_profile
그런 다음 원격 서버에서 (또는 포함된 변수)를 검사 tcsh
하고 적절한 조치를 취할 수 있습니다.
if [ "$FOO_USER" = 'joe' ]; then
export PS1='--[ Joe rules ]-- \u@\h \w \$ ';
source tcsh.joe;
elif [ "$FOO_USER" = 'jane' ]; then
alias ll='ls -Al';
fi
기본적으로 SSH 서버는 허용만 하므로 LANG
서버 에서 추가할 편집이 LC_*
불가능한 경우 변수를 남용하여 해킹할 수 있습니다 (예: ) . 그에 따라 s(또는 해당 로컬 및 원격 파일)를 업데이트하십시오 ./etc/ssh/sshd_config
AccceptEnv LANG LC_* FOO_USER
LC_*
LC_FOO_USER=joe
.bash_profile
tcsh
답변3
우리 팀과 저는 공유 계정과 관련해 비슷한 문제를 겪었습니다. 우리는 약간만 최적화했을 뿐 기본적으로 동일한 솔루션을 생각해냈습니다.
이것이 우리가 하는 일입니다. (우리는 를 사용하는데 ksh
, 자세히는 모르지만 tcsh
매우 비슷하다고 생각합니다).
.tcshrc
거의 사용할 수 없을 정도로 최소한으로 제거했습니다 .모든 사용자가 사용하도록 강제
.tcshrc_cust
그리고 원본 텍스트에 tcshrc
다음과 같은 내용을 추가하세요 .
alias u1='source .tcshrc_user1'
alias u2='source .tcshrc_user2'
alias u3='source .tcshrc_user3'
전체 명령보다 2글자만 입력하는 것이 더 편리하다는 생각입니다. 또한 팀 전체가 이를 수행하면 채택하기가 더 쉬워지고 유지 관리도 더 쉬워집니다.
나는 이것이 완벽한 해결책이라고 말하는 것이 아니며 나는 한동안 당신과 같은 것을 찾고 있었고 이것이 내가 생각해 낼 수 있는 최고의 해결책입니다. 다른 사람이 더 나은 아이디어를 갖기를 바랍니다 :)