不知何故,我设法将用户汤姆添加到Ubuntu的根组,以避免每次使用sudo(坏的决定)。 现在我想删除它,我不能。
我试过使用
usermod -G {groups} Tom
我的/ etc / sudoers文件如下:
Defaults env_reset root ALL=(ALL) ALL %sudo ALL=(ALL) ALL %admin ALL=(ALL) ALL
指定所有的组,但根和没有改变。 任何想法? 谢谢
编辑:这个答案已经从原来的版本大量编辑。 原来是传播了几个更新,所以这有希望代表那些收集到一个逻辑总结)
简短的版本 :看看你提供的输出,我不认为你已经把汤姆放在根组,我认为你已经改变了根用户的主要组汤姆。
长版本:
您提供的输出实际上是root用户的用户和组信息,而不是Tom用户,但是它非常有用,因为它暴露了系统的问题;
# id uid=0(root) gid=1001(Tom) grupos=0(root),1001(Tom),1002(subversion),117(nagios),1004(reweb)
这个输出表明这里有一个问题,那就是你已经把根用户的主要组更改为Tom
,这可能不是你想到的那个uid=0(root) gid=1001(Tom)
; <—这很糟糕。 可能是什么导致问题。
这样做的结果是,可能会有大量Tom拥有的文件,像这样,这些文件会出现在/ var / log
rw------- 1 root Tom 332203 Feb 24 21:17 messages
这是因为root为以root用户身份运行的服务创build了许多文件,并将使用现在是Tom的root用户主要组创build新文件。 您可以使用以下命令修复根主要组问题;
# usermod -g root root
然而, 这个主要的组问题可能会有一些奇怪的效果,例如在组Tom中令人惊讶的地方将文件留在任何地方,因为任何由root创build的文件都将具有Tom组权限。
修复Tom组创build的文件的权限是非常容易的,如果你能find它们
由于上面提到的根主组问题,您应该通过构buildfind / -group Tom
type命令来修复这些权限,以查看这些文件存在的位置。
# find / -group Tom
/var/somepath/somefile.txtx
/var/somepath/somefile.txtx2
并用类似的东西修复这些文件;
chown :root /var/somepath/somefile.txtx2
如果你不关心在/ home / Tom目录之外将Tom用户文件重置为root,那么你可以将所有搞砸的组权限都重新设置为root。
find / \( -type d -regex "/home/Tom" -prune \) -o -group Tom -print -exec chown :root {} \;
但是我会在运行之前查看这个命令,以防止系统瘫痪。
考虑到你所说的话,下面的命令应该修复root和Tom到主组的默认值;
确保root拥有主群组root;
#usermod -g root root
确保汤姆有主要组织汤姆
# usermod -g Tom Tom
确保Tom不在根组中
# gpasswd -d Tom root Removing user Tom from group root
确保root不在Tom组中
# gpasswd -d root Tom gpasswd: unknown member root
如果您想阻止“Tom”获得任何pipe理权限,则可以进一步检查“Tom”不在sudo或admin组中;
# gpasswd -d Tom sudo # gpasswd -d Tom admin
您应该更喜欢使用vigr
命令来编辑/etc/group
。 它会启动你的编辑器的文件的副本; 当你的编辑器退出时,它将进行语法检查,只有在新文件检出时才会replace/etc/group
。
还有一个用于编辑/etc/passwd
的相应vipw
命令。
尝试通过编辑/ etc / group手动删除他
每个组中都有逗号分隔的用户列表。
不确定这是否遵循最佳做法,但它的工作原理。