글쎄, 이것은 내가하고 싶은 일이 아니지만 Unix/Linux 시스템의 Shell 구성에 대해 더 많이 알고 싶어서 이 질문을 드립니다. 그래서 제가 답변드리고 싶은 상황은 다음과 같습니다.
Unix/Linux 시스템에서 사용할 수 있는 다양한 쉘이 있으므로 시스템에 액세스할 권한이 있는 모든 사용자에 대해 서로 다른 쉘을 구성할 수 있습니다. 따라서 Tom, Dick 및 Harry가 "Unix" 시스템을 사용할 권한이 있는 3명의 사용자이고 "Tom"이 쉘을 사용하도록 하려고 한다고 가정해 보겠습니다.zsh, 사용하는 딕tcsh그리고 해리는 그 기술을 사용하기 위해세게 때리다껍데기. 어떻게 이것을 할 수 있고 이것이 가능합니까?
답변1
우선, 유효한 쉘이 에 나열되어 있습니다 /etc/shells
. 모든 사용자는 파일 chsh
에 있는 한 기본 셸을 사용하여 변경할 수 있습니다 /etc/shells
.
둘째, 쉘을 추가하려는 경우 /etc/shells
거기에서 항목, 특히 /bin/sh를 제거하면 시스템이 망가질 수 있습니다. /bin/login
일반적으로 거기에 나열되지 않은 쉘은 실행되지 않기 때문입니다.
더 많은 정보는 다음에서 확인할 수 있습니다.chsh(1),login.defs(5) 및비밀번호(5) 매뉴얼 페이지.
이 기능은 오랫동안 사용되어 왔습니다(저는 BSD 4.x를 믿습니다).
답변2
예, 사용자마다 다른 쉘 설정을 가질 수 있습니다. 예를 들어 명령을 사용하여 변경할 수 있습니다 chsh
. 현재 사용자의 셸을 bash로 변경하려면(/bin/bash에 있다고 가정):
chsh -s /bin/bash [username]
/etc/passwd
파일을 수동으로 수정하고 해당 사용자에 대한 셸을 지정하는 부분을 변경할 수도 있습니다 . 예를 들어:
root:*:0:0:System Administrator:/var/root:/bin/sh
/etc/passwd 각 줄의 마지막 부분은 위 줄과 유사하며 마지막 부분 다음에 :
해당 사용자의 쉘을 지정합니다.
답변3
당신이 사용할 수있는 chsh
!
chsh -s /bin/sh user_name