如何完全禁用帐户?passwd -l
不会允许任何人使用密码登录帐户,但您仍然可以通过私钥/公钥登录。如何完全禁用该帐户?作为快速修复,我将文件重命名为authorized_keys_lockme
.还有别的办法吗?
答案1
根据正确的做法usermod(8)
是:
usermod --lock --expiredate 1970-01-02 <username>
(实际上,参数--expiredate
可以是当前日期之前的任何日期,格式为YYYY-MM-DD
。)
解释:
--lock
锁定用户的密码。但是,仍然可以通过其他方法(例如公钥)登录。--expiredate YYYY-MM-DD
在指定日期禁用该帐户。根据man shadow 5
1970-01-01,这是一个不明确的值,不得使用。
我已经在我的机器上测试过了。执行此命令后,无论是使用密码还是公钥登录都无法进行。
要在以后重新启用该帐户,您可以运行:
usermod --unlock --expiredate '' <username>
答案2
锁定密码并将shell更改为/bin/nologin
.
sudo usermod --lock --shell /bin/nologin username
(或者更简洁地说,sudo usermod -L -s /bin/nologin username
。)
答案3
这是另一种简单的方法。您可以设置用户帐户过期。这将阻止该帐户基于密码和基于 ssh 密钥的登录,但不会不是触摸密码。
锁定帐户:
# chage -E 0 username
用户帐户“用户名”将在系统上被锁定。要重新启用用户帐户,请执行以下操作。
解锁帐户:
# chage -E -1 username
用户帐户“用户名”将在您的系统上重新启用使用相同的密码像之前一样。 “chage”二进制文件是影子工具Red Hat Linux 上的软件包,或者密码Debian Linux 上的软件包。
答案4
要完全删除它,请使用userdel
.
请注意,如果您删除帐户,则存在其用户 ID 仍将在文件系统中某处使用的风险,并且新用户如果在同一用户 ID 下进入,则将继承这些文件的所有权。
您可能想要更改已删除用户所拥有的任何文件的所有者。
如果您想稍后重新添加用户,请将其行/etc/passwd
(在 Solaris 上/etc/shadow
)保存到临时文件,例如/etc/passwd_deleted
.
这样,当您将其添加回来时,您可以使用相同的用户 ID 和相同的密码(在上述文件之一中加密)
免责声明:我自学了 UNIX,因此如果有更好的方法来暂时禁用用户,我不会感到惊讶。事实上,我什至不知道你在谈论什么私钥/公钥。另外我确信有一个find
命令可用于查找具有该所有者用户 ID 的文件