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