当尝试我的用户添加到新组运行一个应用程序(天命),我不小心使其成为唯一一组我的用户是。我已经运行groups
命令,只见七八所以其他团体我是,但是当我登录退出并重新登录以保存我的更改,其他组消失了。
我具有root用户访问权限,但是我的bash历史记录不显示输出。
如何找出我所在的小组?我知道如何让自己重回他们的生活,而不是如何弄清楚他们是什么。
当尝试我的用户添加到新组运行一个应用程序(天命),我不小心使其成为唯一一组我的用户是。我已经运行groups
命令,只见七八所以其他团体我是,但是当我登录退出并重新登录以保存我的更改,其他组消失了。
我具有root用户访问权限,但是我的bash历史记录不显示输出。
如何找出我所在的小组?我知道如何让自己重回他们的生活,而不是如何弄清楚他们是什么。
Answers:
如果您仍在任何地方登录,则可以运行命令groups
以列出正在运行的进程所在的组。如果程序在组更改之前的某个位置运行,则可以列出该进程的组,ps -o rgroup,supgrp 1234
其中1234
进程ID是哪里(对于Linux,语法在其他Unix变体上可能有所不同)。
每当您更改帐户信息时,最好保持登录状态,然后尝试登录另一个终端以验证更改!
如果您使用的是vigr
兼容工具或某种足够兼容的工具,则它将保留在中/etc/group-
。这并不适用于所有工具,例如addgroup
Debian上的命令不会进行备份。在再次编辑文件之前,请先备份一份副本,否则它将被覆盖。
经常备份是一个好主意/etc
。我建议使用etckeeper(在大多数Linux发行版中可用)在版本控制下保留完整的历史记录(在安装软件包之前和之后,etckeeper会自动进行,但是无论如何您都应该使用有意义的日志消息手动提交所有更改)。
我之前已经搜索过,但是只是找到了基本解决我需求的答案:Ubuntu中用户的默认组?
以root用户身份登录(因为我已从sudoers组中删除):
su - root
列出创建用户的设置日志
grep user-setup /var/log/installer/syslog
然后,我运行了命令(使用上述命令中的组列表)
usermod -a -G adm,cdrom,lpadmin,sudo,sambashare,dip username
注销并重新登录,完成!