如何正确地从服务器中删除管理员帐户

如何正确地从服务器中删除管理员帐户

我们的 Debian 服务器上有几位管理员,其中一位已经离开了我们公司。他离开时删除了自己的帐户。他是我们许多系统上的第一位用户,因此现在他创建的任何不在他的主目录中的文件都归用户所有1000。关于这种情况,我有几个问题:

问题 1 他彻底删除帐户的做法对吗?这样做的话,Git 存储库、我们服务的网站、配置文件、共享脚本等现在都归用户所有1000。我理解用户名只是别名UID,但这在服务器上似乎是一种糟糕的情况。

问题2 我最近adduser在系统上添加了一个新用户帐户,并授予该用户 ID 1000。这显然是一个问题,因为这个非管理员成为了前任管理员创建的共享文件的所有者。

如何adduser确定UID使用哪一个?我知道您可以UIDadduser命令行上指定。我只是想知道为什么要设置为使用最低的UID

问题 3 一般来说,从服务器中删除管理员帐户的最佳做法是什么?我们只允许使用公钥 ssh 访问我们的服务器,所以我认为删除用户的.ssh目录并将用户从他/她所属的任何组中删除就足够了。但是,如果您能为我提供删除前任管理员对服务器的访问权限的最佳做法,那就太好了。

问题 4 鉴于管理员已删除了他的帐户,我们现在该怎么办?我应该重新创建他的帐户并分配它吗UID 1000

答案1

问题 1 他彻底删除帐户的做法对吗?这样做的话,git 存储库、我们提供服务的网站、配置文件、共享脚本等现在都归用户 1000 所有。我知道用户名只是 UID 的别名,但这在服务器上似乎是一种糟糕的情况。

这取决于他的主目录的内容。如果里面只有个人文件,我也会这么做。如果里面有关于服务器管理的内容,他就不应该这么做。但这仅仅是个人观点。在我看来,更大的问题是有些服务器守护进程/配置有他的 UID。并不是因为这意味着某些东西无法工作,而是这种内容不应该被分配一个“个人”帐户。无论如何,你可以在一个简单的命令中将所有具有 UID 的文件更改1000为不同的文件(例如 1,例如root)。请参阅 的手册页find,具体是-uid选项。

问题 2 我最近运行 adduser 在系统上添加一个新用户帐户,并授予此用户的 ID 1000。这显然是一个问题,因为这个非管理员被指定为前任管理员创建的共享文件的所有者。adduser 如何确定要使用哪个 UID?我知道您可以在 adduser 命令行上指定 UID。我只是想知道为什么要设置为使用最低的 UID。

系统从/etc/passwd文件中获取此信息。不过,有些默认设置会改变useradd命令的行为,通常在文件中/etc/login.defs

问题 3 通常,从服务器中删除管理员帐户的最佳做法是什么?我们只允许使用公钥 ssh 访问我们的服务器,因此我认为删除用户的 .ssh 目录并将用户从其所属的任何组中删除就足够了。但是,如果您能为我提供删除前任管理员对服务器的访问权限的最佳做法,那就太好了。

如果我不得不这么做,我会先锁定帐户(参见man usermod,选项-L),一旦我确定可以安全删除帐户,我会用 删除它userdel -r。系统中有未使用的登录信息始终存在风险,一旦您发现其主目录中没有任何有趣的内容,就没有理由保留它们。

问题 4 管理员删除了他的账号,现在该怎么办?我是否应该重新创建他的账号并为其分配 UID 1000?

我会更改该用户的用户 ID现在usermod使用命令 (查找 UID 选项)具有 UID 1000 ,然后使用我在第一个问题中回答的命令 ( )find来获取根目录,并将所有具有 UID 的文件的所有权更改为,例如。类似这样的操作应该可以工作:/1000root

find / -uid 1000 -exec chown root:root {} +

相关内容