11.5. 暂时禁用用户

有时需要暂时禁用帐户,而不是删除它。例如,用户可能没有支付费用,或者系统管理员可能怀疑黑客获得了该帐户的密码。

禁用帐户的最佳方法是将它的 shell 更改为一个特殊的程序,该程序只打印一条消息。这样,任何尝试登录该帐户的人都会失败,并且会知道原因。该消息可以告诉用户联系系统管理员,以便处理任何问题。

也可以将用户名或密码更改为其他内容,但是用户将不知道发生了什么。困惑的用户意味着更多的工作。

创建特殊程序的一个简单方法是编写“tail 脚本”

#!/usr/bin/tail +2
This account has been closed due to a security breach.
Please call 555-1234 and wait for the men in black to arrive.
前两个字符 (`#!') 告诉内核,该行其余部分是一个需要运行以解释此文件的命令。在这种情况下,tail 命令将除第一行之外的所有内容输出到标准输出。

如果用户 billg 被怀疑存在安全漏洞,则系统管理员会执行类似这样的操作

# chsh -s 
/usr/local/lib/no-login/security billg
# su - tester
This account has been closed due to a security breach.
Please call 555-1234 and wait for the men in black to arrive.
#
su 的目的是测试更改是否有效,当然。

Tail 脚本应保存在单独的目录中,以便它们的名称不会干扰正常的用户命令。