대화식 쉘을 얻을 수없는 사용자 작성


17

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

질문 : 대화식 쉘을 가져서는 안되는 사용자 john을 작성하십시오.

우리는 어떻게 이것을 할 수 있습니까?

답변:


9

/etc/passwd파일은 사용자 라인의 마지막 항목으로 로그인시 실행할 프로그램이 있습니다. 일반 사용자의 경우 일반적으로 /bin/sh다른 쉘 (예 : bash, zsh)로 설정됩니다.

전통적으로 프로세스 나 파일 또는 기타 리소스를 소유하는 데 사용되는 ID는 "쉘"을 다음과 /bin/false같이 설정합니다 .

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

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


9

당신이 대답하려는 질문에 관해서 :

대화식 쉘을 가져서는 안되는 사용자 john을 작성하십시오.

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

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

당신은을 통해 탈지 경우 이러한 사용자를 생성하는 방법에 대한 man useradd로그인 쉘을 설정하는 옵션이 있습니다 -s또는 --shell. 어쨌든 원하는대로 (사용자가 이미 알고 있다고 생각합니까?) 사용자를 정상적으로 만든 다음 msw의 답변/etc/passwd 에서처럼 편집 할 수 있습니다.


3

예, 비밀번호 파일 (/ etc / passwd) 의 쉘을 쉘 이스케이프를 허용 하지 않는 일부 프로그램으로 변경하십시오 .

당신이 bofh / bin / false가되고 싶다면 정확하게 원하는 것을 수행 할 것입니다.


-1
adduser username -s /sbin/nologin

2
질문에 사용자 이름이 "john"으로 지정되어 있습니다. 당신의 명령이 무엇을하고 있고 왜 그것이 요구 사항을 충족시키는지를 설명하기 위해 작은 산문을 사용하는 것이 아프지 않을 것입니다.
Jeff Schaller
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.