호스팅 된 데비안 서버가 있습니다. ssh를 통해 로그인하면 sh 환경으로 인사합니다. bash 환경에서 시작하도록 변경하려면 어떻게합니까?
호스팅 된 데비안 서버가 있습니다. ssh를 통해 로그인하면 sh 환경으로 인사합니다. bash 환경에서 시작하도록 변경하려면 어떻게합니까?
답변:
일반 사용자는 chsh
명령을 사용하여 기본 로그인 쉘을 변경할 수 있습니다 . 예를 들면 다음과 같습니다.
chsh -s /bin/bash
다른 옵션은 usermod를 루트로 사용하는 것입니다.
usermod -s /bin/bash username
adduser
기본적으로 bash로 설정해야합니다. 기본값은에 구성되어 /etc/adduser.conf
있습니다. 그렇지 않으면으로 명시 적으로 쉘을 지정하십시오 useradd
.
/etc/passwd
마지막 항목이 기본 쉘인 위치를 편집 합니다. 확인하십시오 /bin/bash
.
또는 /bin/sh
bash 가 아닌 시스템 기본값을 변경할 수 있습니다 .
/bin/sh
으로 /bin/dash
입니다. 그리고 그것은 가치가 무엇인지에 대한 다른 두 답변은 동일 하고 다른 방법으로 같은 말을 achive. 도대체 무엇이.
/etc/passwd
권장하지 않습니다. 편집 실수로 모든 사용자의 로그인이 중단 될 수 있으며 복구 매체를 복구하거나 단일 사용자 모드로 부팅해야합니다. usermod
변경 과 같은 도구가 있습니다 /etc/passwd
.
/etc/passwd
.
/bin/bash
로하는 것은 /bin/sh
그것을 실행과 동일 --posix
바람직하지 않은 결과를 얻을 수있다.
/bin/bash
몇 년 동안 모든 기계에서 쉘로 사용 해 왔습니다 . 보다 구체적인 논증이 필요합니다.
/bin/sh
최근 Ubuntu 릴리스의 기본 시스템 셸 은로 구성되어 있습니다 /bin/dash
. 단순히 다음 명령을 실행하여 :
sudo dpkg-reconfigure dash
이전 기본값 인으로 다시 변경할 수 있습니다 /bin/bash
.
이를 통해 bash
사용자 설정 (아니오 chsh
또는 usermod
) 을 변경하지 않고도 대화식 쉘로 원하는 효과를 얻을 수 있으며 현재 쉘을로 설정 한 모든 사용자에게 적용됩니다 /bin/sh
.
이것에 대한 작은 단점은 다음과 같습니다. 우분투 부팅 시간이 약간 증가 할 수 있습니다. dash
로드하는 데 필요한 메모리가 적고 실행 속도가 약간 빠르기 때문입니다 (물론 기능에 한계가 있습니다). 그러나 특히 호스팅 환경 에서이 효과를 측정하는 것이 다소 어려울 것이라고 생각합니다.
또한 때때로 bash
지원되지 않는 일부 고급 기능을 사용하기 때문에 제대로 작동하지 않는 쉘 스크립트를 보는 것은 성가신 일 dash
입니다. 이 레시피를 사용하면 이런 일이 발생하지 않습니다.
자세한 내용은 이 문제 에 대한 우분투 위키를 참조하십시오 .
/bin/sh
POSIX 호환 쉘 스크립트의 인터프리터로 사용됩니다. 반드시 최고의 대화식 쉘은 아닙니다. 당신이 원하는 경우 bash
시스템 쉘로, 당신은 당신의 선택했습니다 로그인 쉘 설정해야합니다 chsh
또는 적절한 adduser
통화. dpkg-reconfigure
userA가 zsh를 원하고 userB가 bash를 원하고 / bin / sh를 기본 쉘로 사용하려는 경우 사용 하는 것은 좋지 않은 선택입니다.
zsh
있고 userB bash
는이를 보유하게됩니다. 만약 userC가로 설정 sh
했다면 bash
, 이는 새로운 사용자를위한 현재 우분투 기본값입니다
dpkg-reconfigure zsh
로 설정하는 것을 제안했습니다 . 나는 주로 / bin / sh를 좋은 로그인 쉘로 만들기 위해 농구대를 사용하는 대신 로그인 쉘을 쉘로 설정하는 것이 바람직하다고 말합니다. zsh
dpkg-reconfigure dash
dash
dpkg-reconfigure dash
할 수 있다고 말했다 . 다른 모든 껍질은 그대로 유지됩니다. sh
bash
dash