기술적으로, pam
쉘을 확인 하지 않으면 쉘을 사용 pam_shells
하지 않으면 실제로 로그인을 막을 수 없습니다. 내 시스템에서는 크기가 다르기 때문에 실제로 무언가를하고 있다고 생각합니다. 차이점은 무엇입니까? 왜 둘 다 존재합니까? 왜 다른 것을 사용합니까?
-rwxr-xr-x 1 root root 21K Feb 4 17:01 /bin/false
-rwxr-xr-x 1 root root 4.7K Mar 2 14:59 /sbin/nologin
답변
때 /sbin/nologin
그 쉘 사용자가 로그인하면, 그들은 말을 정중 메시지를 얻을 것이다, 쉘로 설정 ‘이 계정은 현재 사용할 수 없습니다를.’ 이 메시지는 파일을 사용하여 변경할 수 있습니다 /etc/nologin.txt
.
/bin/false
false
쉘 이있는 누군가가 로그인하면 false
종료 될 때 즉시 로그 아웃 됩니다. 셸을 설정하면 /bin/true
다른 사람이 로그인하지 못하게하는 것과 같은 효과가 있지만 셸이 없다는 개념을 전달하는 것이 훨씬 낫기 때문에 false
아마도 관습으로 사용됩니다 true
.
nologin
의 매뉴얼 페이지를 살펴보면 4.4 BSD (1990 년대 초) false
에 만들어 졌으므로 오래 전에 만들어졌습니다. false
쉘로 사용 하는 것은 아마도 유닉스 초기부터 계속 된 관습 일 것입니다.
nologin
보다 사용자 친화적 인 옵션으로, 로그인을 시도하는 사용자에게 사용자 정의 가능한 메시지가 제공되므로 이론적으로 사용하려고합니다. 하지만 모두 nologin
와 false
누군가가 쉘을 가지고 있지 및에 ssh를 할 수없는 동일한 최종 결과있을 것이다.
답변
일부 FTP 서버는 유효한 쉘이있는 경우에만 FTP 액세스를 허용합니다. /sbin/nologin
유효한 쉘로 간주되지만 /bin/false
그렇지는 않습니다.
( “유효 함”은 종료 상태가 0임을 의미하지만 /etc/shells
시스템, FTP 소프트웨어 및 구성에 따라 다를 수 있습니다.)
답변
/bin/false
오류로 종료하는 것 외에는 아무것도하지 않는 프로그램에 명령을 전달해야 할 때마다 사용되는 시스템 명령입니다. 의 동반자 /bin/true
입니다. 둘 다 매우 오래된 표준 POSIX 유틸리티이며 정의에 따라 출력을 생성하지 않습니다. true는 때때로 다음과 같이 무한 루프되어야하는 쉘 스크립트에 사용됩니다.
while true; do
...
# Waste time
if [ $wasted_time -gt 100000 ]; then
exit 0
fi
...
done
/usr/sbin/nologin
쉘을 대체하기 위해 특별히 설계되었으며 로그인 할 수 없다는 불만을 출력합니다. 존재하기 전에 /bin/false
더미 사용자 를 위해 사용하는 것이 일반적 이었지만 사용자가 왜 시작했는지 알지 못하기 때문에 혼란 스러울 수 있습니다.
답변
내 컴퓨터에서 nologin
인수를 무시하고 항상 같은 메시지를 영어로 표시합니다. /bin/false
에 응답 --version
하고 --help
로 표시되는 언어 $LC_CTYPE
. 이러한 외관상의 차이점 외에도 동일한 효과가 있습니다.
nologin
영어를 사용하는 실제 사람의 계정에 사용하면 유용성 이 더 좋습니다. 보안 측면에서는 차이가 없습니다.
답변
/ bin / false 작업은 0이 아닌 종료 코드로 종료하는 것입니다.
커맨드 라인에서 시도하십시오 :
$:> /bin/false
$:> echo $?
1
$:>
일부 기관은 비밀번호 파일의 쉘 필드에서 / bin / false를 사용합니다. 사용자가 로그인을 시도하면 쉘은 / bin / false이므로 즉시 종료됩니다.
답변
리눅스에서는 util-linux 프로젝트 /sbin/nologin
에서 나오고 GNU Coreutils의 일부입니다 . 그것들은 다른 역할을 수행하며, nologin은 로그인 한 쉘로 메시지를 가지고있는 사람들을 위해 메시지를 인쇄 할 수있는 옵션을 가지고 있습니다. FreeBSD의는 단순히 1을 반환 그동안, 검사가있어 확인 터미날에서 실행 및 로그인 시도시 syslog에 메시지를 전송합니다. 리눅스 버전은 조금 더 복잡하지만 ( –help의 결과를 위해 국제화로 모든 종류의 재미있는 작업을 수행합니다) 본질적으로 동일한 방식으로 수행합니다./bin/false
false
nologin
false
답변
그들은 같은 프로그램이 될 수 있지만 다른 의미를 가지고 있습니다. 프로그램 이름이 모든 것을 알려줍니다.
- / bin / false는 잘못된 값을 반환하기위한 것입니다. 프로그램으로 실행됩니다.
- / bin / nologin은 사용자에게 계정에 대한 로그인이 허용되지 않음을 나타냅니다. (로그인 쉘로 사용됩니다.)