![将所有组重置为默认值](https://linux22.com/image/16342/%E5%B0%86%E6%89%80%E6%9C%89%E7%BB%84%E9%87%8D%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E5%80%BC.png)
我最近在我的计算机上设置了一些组和用户,现在我想删除所有这些用户和所有这些组。有点愚蠢的是,我在 Ubuntu 论坛或类似的地方读到可以只编辑包含所有组信息的文本文件。但现在,每当我启动终端时,我都会得到
groups: cannot find name for group ID 1002
这显然不是正确的事情。
那么,如何删除几个月前创建的所有组和用户呢?
答案1
您可以手动编辑/etc/passwd
和朋友(/etc/group
、/etc/shadow
、/etc/gshadow
),但与使用高级工具相比,犯错误(例如删除无意的行)的风险更大。
使用vigr
而不是直接调用编辑器/etc/group
( vigr -s
for /etc/gshadow
, vipw
( -s
) for /etc/passwd
( /etc/shadow
))。这有两个好处。首先,这些实用程序会锁定文件,以确保某人或某些其他工具不会同时编辑它们。其次,他们创建备份(/etc/group-
,...)。
检查您是否有/etc/group-
或来自其他工具的备份(例如/etc/group.bak
)。它可能有点过时,但仍然比从头开始要好。
如果您没有修改过/etc/gshadow
,您可以找到缺失组的名称,但看不到数字。如果您删除的条目数量低于 100,则在给定版本的 Ubuntu 的所有安装中,它们的名称和编号都是相同的(您仍然需要根据需要将本地用户添加到系统组)。 101 到 999 之间的条目是在安装软件包时分配的,我想不出一种简单的方法来重建这些条目。 1000 以上的条目是您创建的任何条目。
我建议为/etc
.如果您这样做了,您可以从工作版本恢复。看有可以安装的系统日志吗?。简而言之:
apt-get install etckeeper
etckeeper init
您的更改将每天保存(“提交”)一次,在安装软件包之前和之后,或者每当您bzr commit
从/etc
.要查看您所做的更改,请运行bzr diff
.要恢复最新提交的版本,请bzr revert group
从运行/etc
。
答案2
确实,您可以只编辑文本文件/etc/group
。听起来您要么删除了太多内容,要么使文件处于损坏状态。每行需要一个条目,格式如下:
group_name:x:###:
对于“空”组,或
group_name:x:###:username
对于只有一名成员的团体,或
group_name:x:###:username2,username2
对于具有多个成员的团体。我将“空”放在引号中,因为如果将某个组设置为您的主要组,您也可以成为该组的成员/etc/passwd
- 这是那里的第四个字段。
(“x”实际上可以是密码哈希,但现在很少使用。几乎可以肯定,您的系统上都是“x”。)
如果你有无关的空行,或者格式错误的空行,那可能会把事情搞砸。
该文件还需要具有全局可读权限。
理想情况下,您有几个月前的文件备份。但是,我了解现实世界。 :)
还有一个文件/etc/gshadow
。如果你是使用组密码(就像我说的,几乎没有人这样做),它们的哈希值应该保存在这里而不是/etc/group
,因为这个文件应该只能由 root 读取。该文件还可用于指定组管理员,他们能够使用某些命令行工具添加成员。 (我也不知道有人使用此功能。)
这个文件应该与 保持同步/etc/group
。使用命令行或 GUI 工具来管理组将自动执行此操作,这是考虑使用这些工具而不仅仅是编辑文件的另一个原因。然而,在实际操作中,这个文件可能完全不同步,甚至完全混乱,而您的系统通常会正常工作。它不会导致您看到的错误。
吉尔斯在下面的评论中补充说,您可以在/etc/gshadow
文件中查找有关事情如何进行的信息应该是。这不会包含所有重要信息(例如组 ID 号),但会包含组名称以及可能的组成员身份信息。
还可能有一个/etc/group-
文件(注意-
最后的 )——这是由一些用于操作/etc/group/
.如果你幸运的话,那里会有你需要的一切。 (不过,通常这并没有多大帮助,因为它只是一备份。并且像这样的程序gpasswd
不会更新它。)
答案3
是不是就像passwd文件中你的主要组为1002一样简单,但是你已经从组文件中删除了这个组。所以没有办法解析名字。此外,文件仍将具有以前的用户和组 ID。
添加用户和组不是一个好主意,最好禁用它们。如果系统上留下了一些引用,那么您添加一个使用旧 ID 的新用户/组,那么看起来他们创建了该文件,让他们可以访问个人信息等。