The /sbin/nologin program purpose is to print a polite message and return 1, instead of using /bin/false. This can be done with a small assembly program so there's no overhead from the C library.
cat > /tmp/nologin.S << "EOF"
/* Public Domain - i386 nologin.S */
.section .data
message:
.ascii "This account is not available.\n"
len = . - message
.section .text
.globl _start
_start:
movl $4, %eax
movl $len, %edx
movl $message, %ecx
movl $1, %ebx /* Use "$2" to write to stderr,
"$1" for stdout */
int $0x80
movl $1, %eax
movl $1, %ebx
int $0x80
EOF
gcc -nostdlib -static /tmp/nologin.S -o /tmp/nologin
install -v /tmp/nologin /sbin/nologin
Note that the manual page won't match now.
