在Linux上删除一个用户所涉及的事情比你想象的要多。如果您是系统管理员,则需要从系统中清除帐户及其访问权限的所有跟踪。我们会告诉你要采取的步骤。
如果您只想从系统中删除用户帐户,而不想结束任何正在运行的进程和其他清理任务,请按照下面“删除用户帐户”部分中的步骤进行操作。在基于Debian的发行版上需要deluser命令,在其他Linux发行版上需要userdel命令。
自从第一个分时系统在20世纪60年代初出现并带来了让多个用户在一台计算机上工作的能力以来,就需要将每个用户的文件和数据与所有其他用户隔离开来。于是用户帐号和密码就诞生了。
用户帐户有管理开销。它们需要在用户第一次需要访问计算机时创建。当不再需要访问时,它们需要被移除。在Linux上,为了正确而系统地从计算机中删除用户、他们的文件和他们的帐户,应该遵循一系列步骤。
如果你是系统管理员,责任就落在你身上。这是怎么做的。
可能有许多原因需要删除帐户。一名员工可能会调到另一个团队,或者干脆离开公司。该帐户可能是为与另一家公司的访问者进行短期合作而设置的。团队合作在学术界很常见,研究项目可以跨越院系、不同的大学,甚至商业实体。在项目结束时,系统管理员必须执行内务管理并删除不必要的帐户。
最坏的情况是,有人因为轻罪而离开。这类事件通常是突然发生的,没有什么先兆。这使得系统管理员几乎没有时间进行计划,并且迫切需要锁定、关闭和删除帐户,并备份用户文件的副本,以防关闭后的取证需要这些文件。
在我们的场景中,我们将假装用户Eric已经做了一些事情,保证他立即从该场所移除。这时他不知道这件事,他还在工作,登录了。你一点头,他就要被护送出大楼。
一切都准备好了。所有的眼睛都盯着你。
让我们看看他是否真的登录了,如果是的话,他正在处理多少个会话。who命令将列出活动会话。
whoEric登录过一次。让我们看看他在运行什么进程。
我们可以使用ps命令列出这个用户正在运行的进程。u(用户)选项允许我们告诉ps将其输出限制为在该用户帐户的所有权下运行的进程。
ps -u eric我们可以使用top命令看到具有更多信息的相同进程。top还有一个-U(用户)选项,用于将输出限制为单个用户拥有的进程。请注意,这一次它是一个大写的“U”
top -U eric我们可以看到每个任务的内存和CPU使用情况,并可以快速查找任何可疑活动。我们将强制终止他的所有进程,因此最安全的做法是花点时间快速检查这些进程,并检查并确保在您终止用户帐户的进程时不会给其他用户带来不便。
看起来他做的不多,只是少用查看文件。我们可以继续。但是在我们杀死他的进程之前,我们会锁定密码来冻结帐户。
相关:如何使用ps命令监视Linux进程
在终止进程之前,我们将锁定帐户,因为当我们终止进程时,它将注销用户。如果我们已经更改了他的密码,他就无法登录了。
加密的用户密码存储在/etc/shadow文件中。您通常不会为接下来的步骤操心,但是为了在锁定帐户时可以看到/etc/shadow文件中发生了什么,我们将稍微绕道。我们可以使用以下命令查看eric用户帐户条目的前两个字段。
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadowawk命令解析文本文件中的字段,并可选地对其进行操作。我们使用-F(字段分隔符)选项告诉awk文件使用冒号“:”分隔字段。我们要找一条有“埃里克”图案的线。对于匹配行,我们将打印第一个和第二个字段。这些是帐户名和加密密码。
用户帐户eric的条目是为我们打印的。
要锁定帐户,我们使用passwd命令。我们将使用-l(lock)选项并传入要锁定的用户帐户的名称。
sudo passwd -l eric如果我们再次检查/etc/passwd文件,就会看到发生了什么。
sudo awk -F: '/eric/ {print $1,$2}' /etc/shadow在加密密码的开头添加了感叹号。它不会覆盖第一个字符,只是添加到密码的开头。这就是阻止用户登录到该帐户所需的全部内容。
既然我们已经阻止了用户重新登录,我们就可以终止他的进程并将其注销。
杀死用户进程的方法有很多种,但是这里显示的命令是广泛可用的,并且是比其他一些方法更现代的实现。pkill命令将查找并终止进程。我们正在传递KILL信号,并使用-u(用户)选项。
sudo pkill -KILL -u eric您将以一种绝对反**的方式返回到命令提示符。为了确定发生了什么,我们再检查一下是谁:
who他的疗程结束了。他被注销了,他的程序也被停止了。这就消除了局势的一些紧迫性。现在我们可以放松一下,继续扫荡剩下的东西,保安走到埃里克的办公桌旁。
相关:如何从Linux终端终止进程
在这样的场景中,将来需要访问用户的文件,这不是不可能的。无论是作为调查的一部分,还是仅仅因为他们的替代者可能需要参考他们前任的工作。我们将使用tar命令来归档他们的整个主目录。
我们使用的选项有:
许多屏幕输出将在终端窗口中滚动。要检查存档是否已创建,请使用ls命令。我们使用的是-l(长格式)和-h(人类可读)选项。
ls -lh eric-20200802.tar.bz已创建722 MB的文件。这可以复制到安全的地方,以备日后审查。
我们最好检查一下,以防有任何cron作业安排给用户帐户。cron作业是在指定时间或间隔触发的命令。我们可以使用ls检查是否有任何cron作业计划用于此用户帐户:
sudo ls -lh /var/spool/cron/crontabs/eric如果此位置中存在任何内容,则表示有cron作业排队等待该用户帐户。我们可以用这个crontab命令删除它们。-r(remove)选项将删除作业,-u(user)选项告诉crontab要删除谁的作业。
sudo crontab -r -u eric作业将自动删除。据我们所知,如果埃里克怀疑他即将被驱逐,他可能安排了一个恶意的工作。这一步是最佳实践。
可能用户有挂起的打印作业?只是为了确保,我们可以清除属于用户帐户的任何作业的打印队列。lprm命令从打印队列中删除作业。使用-U(用户名)选项可以删除命名用户帐户拥有的作业:
lprm -U eric作业将被删除,并返回到命令行。
我们已经备份了/home/eric/directory中的文件,因此我们可以继续删除用户帐户,同时删除/home/eric/directory。
要使用的命令取决于您使用的Linux发行版。对于基于Debian的Linux发行版,命令是deluser,对于Linux世界的其他地方,命令是userdel。
实际上,在Ubuntu上这两个命令都是可用的。我有一半希望其中一个是另一个的别名,但它们是不同的二进制文件。
type deluser type userdel尽管两者都可用,但建议在Debian衍生发行版上使用deluser:
“userdel是一个用于删除用户的低级实用程序。在Debian上,管理员通常应该改用deluser(8)。”
这很清楚,所以在这个Ubuntu计算机上使用的命令是deluser。因为我们还希望删除它们的主目录,所以我们使用--remove home标志:
sudo deluser --remove-home eric用于非Debian发行版的命令是userdel,带有--remove标志:
sudo userdel --remove eric用户帐户的所有痕迹都已清除。我们可以检查/home/eric/目录是否已被删除:
ls /homeeric组也已被删除,因为用户帐户eric是其中唯一的条目。通过grep将/etc/group的内容管道化,我们可以很容易地检查这一点:
sudo less /etc/group | grep eric埃里克,为了他的罪,已经走了。安全人员仍在把他带出大楼,而你已经保护并存档了他的文件,删除了他的帐户,清除了系统中的任何残余。
准确总是胜过速度。在你采取行动之前,一定要考虑每一步。你不会希望有人走到你的办公桌前说“不,另一个埃里克。”
...隐私问题、跟踪、审查争议和所谓的“仇恨言论”(以及如何安全地应用这样的描述),Facebook远不是它的主人让你相信的舒适的网上家园。还有恶意软件。。。 ...
...个逐步删除大量恶意软件的方法。此外,我们将向您展示如何阻止恶意软件感染您的系统,首先。如果你不必担心恶意软件,你将有更多的时间在生活中更好的事情。 ...
...止Facebook在互联网上跟踪你?你当然可以试试。以下是你如何停止Facebook追踪你的在线活动。 ...
想在Linux系统上添加用户但不知道如何添加?在Linux上使用命令行界面管理用户无疑是一项复杂的工作。而对于初学者来说,即使添加新用户也是一场噩梦。 ...
想在Arch Linux上安装软件包但不知道如何安装?很多人在第一次从基于Debian的发行版迁移到Arch时都面临这个问题。但是,您可以使用包管理器在基于Arch的系统上轻松地管理包。 ...
...用,不需要对文件系统有详细、低级的了解。让我们看看如何使用它! 相关:你想知道的关于Linux上inodes的一切 安装测试盘 要在Ubuntu上安装testdisk,请使用以下命令: sudo apt-get install testdisk 在Fedora上,您需要键入: sudo dnf insta...
...,可以设置文件和目录的读、写和可执行权限。 相关:如何在Linux上使用chmod命令 但是chmod命令并不是一个仅限Linux的命令。与许多其他Linux终端命令一样,chmod可以追溯到上世纪70年代的Unix Linux和macOS都有这一传统,这就是chmod命...
...改Linux文件权限,乍看起来很复杂,但一旦你知道它们是如何工作的,实际上就相当简单了。 chmod修改文件权限 在Linux中,谁可以对文件或目录做什么是通过权限集来控制的。有三组权限。一组用于文件所有者,另一组用于文...