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

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

글쎄, 이것은 내가 하고 싶은 것이 아니지만 Unix/Linux 시스템의 Shell 구성에 대해 더 자세히 알아보기 위해 이 질문을 드리는 것입니다. 그래서 제가 답변을 원하는 상황은 다음과 같습니다.

Unix/Linux 시스템은 서로 다른 쉘을 제공하므로 시스템에 액세스할 수 있는 각 사용자에 대해 서로 다른 쉘을 구성할 수 있습니다. 따라서 Tom, Dick 및 Harry가 "Unix" 시스템을 사용할 권한이 있는 3명의 사용자이고 "Tom"이 쉘을 사용하도록 한다고 가정해 보겠습니다., 거시기 사용tcsh해리와 함께 사용세게 때리다껍데기. 어떻게 해야 하나요? 가능할까요?

답변1

먼저 유효한 쉘이 에 나열되어 있습니다 /etc/shells. 모든 사용자는 파일 chsh에서 long을 사용하여 기본 쉘을 변경할 수 있습니다 /etc/shells.

둘째, 쉘을 추가하려는 경우 /etc/shells거기에서 항목, 특히 /bin/sh를 제거하면 시스템이 망가질 수 있습니다. /bin/login거기에 나열되지 않은 쉘은 일반적으로 실행되지 않기 때문입니다.

자세한 내용은 다음을 참조하세요.chsh(1),로그인 이름.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

관련 정보