我不小心从多个组中删除了我的用户,我如何找出他们是什么?

我不小心从多个组中删除了我的用户,我如何找出他们是什么?

当尝试将我的用户添加到一个新组来运行应用程序(Kismet)时,我不小心将其设为我的用户所在的唯一组。我运行了该groups命令并看到了我所在的七个左右其他组,但是当我登录时退出并重新登录以保存我的更改,其他组都消失了。

我有 root 访问权限,但我的 bash 历史记录不显示输出。

我如何知道我属于哪些组?我知道如何将自己添加回其中,但不知道如何弄清楚它们是什么。

答案1

我之前已经搜索过,但刚刚找到了这个答案,它基本上解决了我的需求:Ubuntu 中用户的默认组?

  1. 以 root 身份登录(因为我已从 sudoers 组中删除):

    su - root

  2. 列出创建我的用户的设置日志

    grep user-setup /var/log/installer/syslog

  3. 然后我运行命令(使用上述命令中的组列表)

    usermod -a -G adm,cdrom,lpadmin,sudo,sambashare,dip username

  4. 注销并重新登录,完成!

答案2

如果您仍然在任何地方登录,则可以运行该命令groups来列出正在运行的进程所在的组。如果您登录到无权访问的终端,或者更一般地说,如果您有如果程序在组更改之前在某处运行,您可以列出该进程的组,ps -o rgroup,supgrp 1234其中1234是进程 ID(对于 Linux,语法在其他 Unix 变体上可能有所不同)。

每当您更改帐户的某些内容时,最好保持登录状态并尝试登录另一个终端以验证更改!

如果您使用vigr或某些足够兼容的工具,它会在/etc/group-.这并不适用于所有工具,例如addgroupDebian 上的命令不会进行备份。再次编辑文件之前,请先复制备份,否则它将被覆盖。

经常备份/etc.我建议使用等等管理员(在大多数 Linux 发行版上可用)在版本控制下保留完整的历史记录(etckeeper 在安装软件包之前和之后自动进行,但无论如何您都应该使用有意义的日志消息手动提交所有更改)。

相关内容