我正在尝试显示“/usr/sbin/nologin”的自定义消息。据我所知,这可以通过创建包含所需文本的文件“/etc/nologin.txt”来实现。
但它在 Ubuntu 12.04 (LTS (GNU/Linux 3.2.0-38-generic x86_64)) 中不起作用 - 它只显示“标准”消息:
$ cat /etc/nologin.txt
Sorry, there is no login shell
$ nologin
This account is currently not available.
我是否遗漏了什么?
答案1
您可以检查输出
strace /usr/sbin/nologin 2>&1 | grep open
这些文件通过 访问nologin
。我没有 Ubuntu,但在 Debain 中有以下输出:
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = 3
open("/etc/localtime", O_RDONLY) = 3
与显示的系统/etc/nologin.txt
(openSuSE 11)相比,缺少重要的一行
open("/etc/nologin.txt", O_RDONLY) = -1 ENOENT (No such file or directory)
此外,
strings /usr/sbin/nologin
显示该消息似乎嵌入在二进制文件中。它也可以通过以下方式查看:
cat /usr/bin/nologin | xxd
看起来没有提供更改默认消息的功能。
man 5 nologin
状态
如果文件 /etc/nologin 存在,login(1) 将只允许 root 访问。其他用户将看到此文件的内容,并且他们的登录将被拒绝。
但这可能也不是你想要的……