나는이 명령이 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
답변
로그 아웃했다가 다시 로그인하십시오.
이 chsh
명령은 /etc/passwd
파일 을 업데이트 하지만 현재 쉘이나 현재 쉘의 $SHELL
변수 값을 변경하지는 않습니다 (그 방법은 없습니다). 이것이 다시 로그인해야하는 이유입니다. 변경 사항을 적용하려면 새 로그인 세션을 시작해야합니다.
답변
사용 하고 usermod 유틸리티 명령은 내 경우했다. 우분투에서 실행 18.04.
- 먼저 현재 값 확인
grep nameofuser /etc/passwd
- 그것을 바꾸다
sudo usermod --shell /bin/bash nameofuser
- 그것을 확인
grep nameofuser /etc/passwd