CentOS 서버에 SSH 접속할 때의 기본 경로를 변경 하시겠습니까?


12

CentOS 5.7 웹 서버가 있고 SSH를 사용하여 연결할 때 들어오는 기본 위치를 변경하고 싶습니다.

현재 /home/username에 착륙했으며 /home대신 착륙하고 싶습니다 .

나는 루트로 들어가서 추가 PermitUserEnvironment yes했다 /etc/.ssh/sshd_config. 그리고 내가 이해 한 것처럼 이것은 파일을 ssh위해 사용자 자신의 폴더를 쓸어 넘긴다 environment. 확실 export path=$PATH:$HOME하지 않은 것은 여기 또는 내 .bashrc 또는 .bash_profile 파일에서 작동하지 않는 것처럼 이 환경 파일에 추가 하는 것입니다. 어쨌든 SSH 연결은 비 대화 형 셸입니까?).

미리 감사드립니다.

답변:


14

인증에 PAM을 사용하는 경우 가장 가능성이 높습니다. 에 루트 머리로 /etc/passwd.

거기 당신은 당신의 사용자 이름과 경로를 볼 수 있습니다! 거기에서 변경하면 집에 무료입니다!

편집-죄송합니다. 홈 폴더를 변경하고 싶지 않은 것이 나에게 발생했습니다. 이 경우 간단히 다음을 추가하십시오.

cd /home

.bashrc파일 의 맨 아래로 !


4
usermod쓰는 사용자와 관련된 내용을 변경할 때 /etc/passwd실수를 방지 하는 것이 좋습니다 usermod -d /home user.
laebshade

1
그 쪽 의견은 .bashrc나를 facepalm으로 만들었습니다. 너무 간단하고 명백합니다. 제가 생각했으면 좋겠습니다! 잘 했어. 명성!
cwallenpoole

4

기억해야 할 것은 ~/.ssh/environment쉘이나 ssh명령이 생성 되기 전에 읽히 므로 export 나 $ PATH가 의미가 없다는 것입니다. 여기서는 환경 변수 (일반 쉘 명령을 실행하지 않음) 만 설정할 수 있습니다.

비 대화식 ssh 쉘의 환경을 확보 한 후 수정하면 비 대화식 명령에 필요한 것을 얻을 수 있습니다. 예를 들면 다음과 같습니다.

$ ssh mylogin@myserver env

서버에서 ssh로 시작하는 것을 제공합니다. ~/.ssh/environment파일을 다음과 같이 쓰는 경우 :

PATH=/usr/local/bin

위의 내용을 다시 실행하면 "bash : env : command not found"가 표시됩니다. 좋은!

이제 시스템의 기본 경로 sshd(예 : 첫 번째 "ssh .... env"호출)를 기반으로 경로를 명시 적으로 작성하십시오 (예 /usr/local/bin: 헤드에 추가 ).

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

쉘이 홈 경로에서 (기본적으로) 시작될 때 CWD를 설정하는 것은 유용하지 않습니다 ~/.ssh/rc(이후 ~/.ssh/environment에 읽히지 만 ssh쉘 또는 명령 전에 실행 됨).


double +1, 나는이 정보를 어디서나 찾고 있었다
spinup
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.