最近我意外地执行了usermod
向我的用户添加组的命令;不幸的是我忘记了-a
操作员,因此该命令从我的用户中删除了所有其他组。
下次登录后,我意识到我不能sudo
再这样做了。
经过研究,我从备份中恢复了/etc/group
和文件。我的用户的所有组都已成功恢复,现在如下所示:/etc/gshadow
[tobias@asterix ~]$ id tobias
uid=1000(tobias) gid=1001(tobias) groups=1001(tobias),0(root),995(audio),991(lp),1000(autologin)
现在我重新登录,但仍然出现相同的错误消息:
[tobias@asterix ~]$ sudo ls
[sudo] password for tobias:
tobias is not in the sudoers file. This incident will be reported.
我检查了/ect/sudoers
,首先它过去没有任何改变,并且它已经包含以下行:
root ALL=(ALL) ALL
如果我没记错的话,由于我的用户已经是该root
组的一部分,所以一切都应该没问题。
也许有人可以提示我如何将我的系统设置完全恢复为原始行为?
答案1
图示sudoers条目不适用于组;它适用于“根”用户. 组条目以 开头%
。
如果您知道 root 密码,请使用su
切换到 root 用户,然后从那里您可以修复组成员身份和/或为您自己或任何组添加 sudoers 条目。
如果没有,那么你必须使用恢复模式,或者 Live CD(您可以尝试使用内核选项“systemd.debug-shell”进行启动以获取恢复 shell Alt+F9。)
将来,使用gpasswd --add
/gpasswd --delete
来更改您的群组成员资格,而不是使用用户模式。
答案2
您不属于正确的 SUDO 组,但您是 unix 组“root”的成员。因此,您可能能够使用 ---rwx--- 权限写入每个文件或文件夹。
因此,您可以通过重写或更改任何可写文件或文件夹组来创建安全权限升级。