在 Linux (RedHat) 中如何锁定帐户并显示管理员消息?

in Linux (RedHat) how do I lock an account and display admin message?

我的系统上有人使用维护帐户登录并执行会减慢我的机器速度的操作时遇到问题。 我如何锁定这个帐户,当有人试图使用它登录时,它会显示一条系统消息或管理员消息,在所有登录方式中,通过 rsh、telnet、ssh、在实际的物理机上,通过xming、gnome、kde....

可能最佳(标准)答案是将相关帐户的登录名 shell 设置为 /sbin/nologin and/or 输入不可能的哈希值(例如“$$”)在 /etc/shadow。但是,这不会显示您的 "go away" 消息...

如果您真的需要显示一条消息,您可以尝试这样的操作(额外 space 添加以强调并使用 cat 而不是编辑器来说明):

pecan:~ $ ssh pine

pine:~$ cat >/tmp/locked_acct
#!/bin/bash
echo "This account has been locked"
sleep 10
exit 1

pine:~$ chmod +x /tmp/locked_acct 

pine:~$ /tmp/locked_acct 
This account has been locked

pine:~$ sudo cat >>/etc/shells
/tmp/locked_acct

pine:~$ sudo useradd -r -m -c 'locked system account' --shell /tmp/locked_acct locked

pine:~$ sudo passwd locked
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

pine:~$ exit
logout

Connection to 192.168.1.224 closed.
pecan:~$ ssh locked@192.168.1.224
locked@192.168.1.224's password: 
This account has been locked
Connection to 192.168.1.224 closed.

简而言之:

  1. 在适当的位置创建一个 shell 来显示您的消息。显然,您不会像我所做的那样将 shell 放在 /tmp 下(它可以很容易地删除)。
  2. 将 shell(带完整路径)添加到 /etc/shells。
  3. 使用新 shell 创建帐户。如果该帐户存在(如您的情况),请使用 chsh 或 vipw 更改 shell 或编辑密码文件。