나는 새로운 명령을 배웠습니다. 적어도 그렇게 생각합니다. 왜냐하면 이 명령은 chsh
설명된 것과 다르게 동작하기 때문입니다.
다음과 같이 작동하는 것으로 설명됩니다.
cat /etc/shells
어떤 쉘이 설치되어 있는지 알아보고 그중에서 선택할 수 있습니다.echo $SHELL
어떤 쉘을 사용하고 있는지 확인 하십시오 .- 쉘을 선택하고 입력하십시오.
chsh -s /path/to/shell
- 비밀번호를 입력하고 를
echo $SHELL
사용하여 새 쉘에 있는지 확인하십시오.
이 작업을 수행했는데 비밀번호를 입력할 때 오류 메시지가 표시되지 않지만 여전히 동일한 셸에 있습니다.
% echo $SHELL
/bin/bash
% cat /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
% chsh -s /bin/sh
Password:
% echo $SHELL
/bin/bash
답변1
로그아웃했다가 다시 로그인하세요.
이 chsh
명령은 파일을 업데이트 /etc/passwd
하지만 변경하지는 않습니다.현재의쉘은 현재 쉘의 변수 값도 아닙니다 $SHELL
(그렇게 할 수는 없습니다). 이것이 바로 다시 로그인해야 하는 이유입니다. 변경 사항을 적용하려면 새 로그인 세션을 시작해야 합니다.
답변2
사용사용자 모드내 경우에는 유틸리티 명령이 작동합니다. 우분투 18.04에서 실행 중입니다.
- 먼저 현재 값을 확인하세요.
grep nameofuser /etc/passwd
- 변화
sudo usermod --shell /bin/bash nameofuser
- 확인하세요
grep nameofuser /etc/passwd