단일 Linux/Unix 배포판에서 다양한 사용자를 위해 다양한 셸을 구성할 수 있습니까?

단일 Linux/Unix 배포판에서 다양한 사용자를 위해 다양한 셸을 구성할 수 있습니까?

글쎄, 이것은 내가하고 싶은 일이 아니지만 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

관련 정보