删除用户
版本1.0
作者:Tom Adelstein <tom [dot] adelstein [at] gmail [dot] com>
Falko Timme
大多数组织的员工流失率都很高。 所以除非你运行一个稳定的用户群的小商店,你需要学习如何清理员工离开后。 太多所谓的系统管理员在管理用户时不了解涉及的风险。 不满的前员工通常可以通过访问网络为公司造成重大麻烦。
要删除用户,您需要学习管理他或她的所有文件,邮箱,邮件别名,打印作业,重复的(自动)个人进程,如备份数据或远程同步目录等对用户的引用。 首先禁用/ etc / passwd
中的帐户是一个好主意,之后可以搜索用户的文件和其他引用。 一旦用户的所有痕迹都被清理完毕,您可以完全删除该用户,但是如果在存在这些其他引用时从/ etc / passwd
中删除该条目,那么您更难参考它们。
当您删除用户时,最好遵循一个预先确定的操作步骤,以免您忘记任何重要步骤; 制作清单可能是一个好主意,以便您有一个例行程序。 以下,您会发现需要注意的几个项目。
1禁用用户密码
第一个任务是禁用用户密码,有效地锁定他。 例如:
# passwd -l bwilson
有时有必要暂时禁用帐户而不删除它。 例如,用户可以在另一个国家休假或休假休息90天。 您也可以从系统日志中发现有人通过猜测密码获得了对帐户的未经授权的控制。 passwd -l
命令对于这些情况很有用。 它通过将密码更改为不能与任何可能的加密值匹配的值来lck(因此-l
)帐户。
2查找用户的文件
接下来,您必须决定如何处理用户的文件。 请记住,用户可能在主目录之外有文件。 find
命令可以找到它们:
# find / -user bwilson
然后,您可以决定是否删除这些文件或保留它们,稍后将在“密封主目录”部分中讨论。 如果您决定删除它们,请备份它们,以备以后需要数据。
3更改登录Shell
作为额外的安全性,您可以将用户的登录shell更改为虚拟值。 只需将/ etc / passwd
文件中的最后一行更改为*或/ dev / null
。
例如,如果您在/ etc / passwd中有bwilson的行:
bwilson:x:1023:1023:Brian Wilson:/home/bwilson:/bin/bash |
你可以改为:
bwilson:x:1023:1023:Brian Wilson:/home/bwilson:/dev/null |
4删除SSH密钥
如果您的组织使用安全Shell(SSH,通常由OpenSSH在Linux上提供),并且您允许远程RSA或DSA密钥身份验证,即使禁用密码,用户也可以访问该系统。 这是因为SSH使用单独的键。 例如,即使您已经使用目前所显示的步骤将Brian Wilson从系统中锁定,也可以在另一台计算机上运行以下命令:
bwilson:~$ ssh -f -N -L8000:intranet.yourcompany.com:80 my.domain.com
这将流量转发到内部服务器端口80(Web服务器通常监听的端口)。 我们将在本书的安全部分更详细地讨论这种类型的活动。 显然,如果您的系统提供SSH,则应删除〜bwilson / .ssh
或〜bwilson / .ssh2
目录中的授权密钥,以阻止用户以这种方式重新访问其帐户。 同样,在用户的主目录中查找shosts
和rhosts
文件: 〜bwilson / .shosts
和〜bwilson / .rhosts
。
例如,如果bwilson
的主目录是/ home / bwilson
,则可以像这样删除这些键:
# rm -fr /home/bwilson/.ssh/*
# rm -fr /home/bwilson/.ssh2/*
# rm -fr /home/bwilson/.shosts
# rm -fr /home/bwilson/.rhosts
5杀死用户的进程
另外,检查用户是否仍然有系统上运行的进程。 这样的进程可能作为一个后门来允许用户进入网络以下命令将告诉你当前是否正在运行。
# ps aux | grep -i ^bwilson
如果你得到这样的输出:
bwilson 1960 0.0 0.2 1684 628 ? Ss 10:10 0:00 /usr/sbin/someprocess |
那么你可以像这样杀死进程:
# kill -9 1960
其中1960
是进程ID
(pid)。
系统管理员可能会询问有关离开公司的个人用户的其他问题包括:
-
bwilson
可以从他的主目录或公司的网络服务器之一执行Common Gate Interface(CGI)脚本吗? - 是否存在
〜bwilson / .forward
等电子邮件转发文件? 用户可以使用转发器将邮件发送到他们的帐户,并导致程序在被认为无法访问的系统上执行。