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


1

当尝试我的用户添加到新组运行一个应用程序(天命),我不小心使其成为唯一一组我的用户是。我已经运行groups命令,只见七八所以其他团体我是,但是当我登录退出并重新登录以保存我的更改,其他组消失了。

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

如何找出我所在的小组?我知道如何让自己重回他们的生活,而不是如何弄清楚他们是什么。


1
/ etc / group的备份副本?查找您拥有的文件不等于kismet的文件?
杰夫·谢勒

文件是一个聪明的主意,我最终列出了默认组并进行了恢复。希望我现在不再遇到疯狂的访问问题...
Preston Badeer '16

Answers:


1

如果您仍在任何地方登录,则可以运行命令groups以列出正在运行的进程所在的组。如果程序在组更改之前的某个位置运行,则可以列出该进程的组,ps -o rgroup,supgrp 1234其中1234进程ID是哪里(对于Linux,语法在其他Unix变体上可能有所不同)。

每当您更改帐户信息时,最好保持登录状态,然后尝试登录另一个终端以验证更改!

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

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


“每当您更改帐户内容时,最好保持登录状态,然后尝试登录另一个终端以验证更改!” <<很好的建议,这可以避免这个问题。我也不知道该列表的备份位置。
普雷斯顿·巴德

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. 注销并重新登录,完成!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.