it-swarm-ko.tech

대화 형 셸을 얻을 수없는 사용자 만들기

대화 형 및 비대화 형 셸이란 무엇입니까?

질문 : 대화 형 셸을 가져 오지 않아야하는 사용자 john을 만듭니다.

어떻게 할 수 있습니까?

18
user2914

/etc/passwd 파일에는 로그인시 실행할 프로그램이 사용자 줄의 마지막 항목으로 포함됩니다. 일반 사용자의 경우 일반적으로 /bin/sh 또는 기타 셸 (예 : bash, zsh)로 설정됩니다.

일반적으로 프로세스, 파일 또는 기타 리소스를 소유하는 데 사용되는 ID는 다음과 같이 "Shell"이 /bin/false로 설정됩니다.

syslog:x:101:102::/home/syslog:/bin/false

의사 사용자 syslog는 /var/log/syslog를 소유하고 해당 파일에 대한 쓰기 권한이있는 유일한 UID이지만 실행할 명령 인터프리터가 없으므로 사용자 syslog로 로그인 할 수 없습니다.

9
msw

답변하려는 질문과 관련하여 :

대화 형 셸을 가져 오지 않아야하는 사용자 john을 만듭니다.

질문은 "셸에서 로그인하고 명령을 실행할 수없는 john 사용자를 생성합니다"를 의미합니다. 대화 형은 셸이 작동하는 방식을 설명합니다. 사용자가 무언가를 입력하면 셸이 그에 따라 작업을 수행합니다 (사용자와 셸간에 일종의 통신이 있음). "대화 형"이라는 단어는 실제로 질문에 정보를 추가하지 않습니다. 사용자가 명령을 입력하는 한 셸 세션은 대화 형이기 때문입니다.

사용자가 실행하려는 일련의 명령을 파일 (셸 스크립트라고 함)에 저장하고 나중에 파일을 실행하는 비대화 형 모드도 있습니다. 일부 명령은 셸이 대화 형으로 실행되는지 비대화 형으로 실행되는지에 따라 다르게 작동합니다. 자세한 내용은 여기 (이 문서는 bash 용이지만 다른 쉘에도 동일한 개념이 적용됩니다).

이러한 사용자를 만드는 방법에 대해 man useradd 로그인 셸을 설정하는 옵션이 있습니다. -s 또는 --Shell. 원하는 방식으로 사용자를 정상적으로 생성 한 다음 (이미 알고 있다고 가정합니다.) /etc/passwdmsw의 대답 과 같습니다.

9
phunehehe

예, 비밀번호 파일 (/ etc/passwd)의 셸을 셸 이스케이프를 허용하지 않는 (== --- ==) 일부 프로그램으로 변경합니다.

bofh /bin/false가되고 싶다면 정확히 원하는 것을 할 것입니다.

3
David Harris