从根组中删除用户

Joa*_*les 4 ubuntu user-management root

不知何故,我设法将用户 Tom 添加到 Ubuntu 中的 root 组,以避免每次都使用 sudo(错误的决定)。现在我想删除它,我不能。

我试过使用

usermod -G {groups} Tom 
Run Code Online (Sandbox Code Playgroud)

我的 /etc/sudoers 文件如下:

Defaults        env_reset

root    ALL=(ALL) ALL

%sudo ALL=(ALL) ALL

%admin ALL=(ALL) ALL
Run Code Online (Sandbox Code Playgroud)

指定除 root 之外的所有组并且不进行任何更改。任何的想法?谢谢

Tom*_*Tom 8

编辑:自原始版本以来,此答案已被大量编辑。原始版本分布在几个更新中,所以这希望代表那些收集到逻辑摘要中的内容)

简短版本:查看您提供的输出,我认为您没有将 Tom 放在 root 组中,我认为您已将 root 用户主组更改为 Tom。

长版:

您提供的输出实际上是 root 用户的用户和组信息,而不是 Tom 用户,但是它非常有用,因为它暴露了您系统的问题;

 # id
 uid=0(root) gid=1001(Tom)    
 grupos=0(root),1001(Tom),1002(subversion),117(nagios),1004(reweb)  
Run Code Online (Sandbox Code Playgroud)

此输出表明这里存在一个问题,即您已将 root 用户主组更改Tom为可能不是您所想的uid=0(root) gid=1001(Tom)<---这很糟糕。并且可能是导致问题的原因。

这样做的结果是,可能会有大量文件像这样由 Tom 组拥有,这些文件会出现在 /var/log 之类的地方

rw------- 1 root Tom 332203 Feb 24 21:17 messages

这是因为 root 为以 root 身份运行的服务创建了许多文件,并将使用 root 用户主组(现在是 Tom )创建新文件。您可以使用以下命令修复根主组问题;

# usermod -g root root

然而,这个主要的组问题可能会产生一些奇怪的影响,例如将文件随处保留在组 Tom 令人惊讶的地方,因为 root 创建的任何文件都将拥有 Tom 组权限。

如果您能找到它们,那么修复使用 Tom 组创建的文件的权限非常容易

由于上面提到的 root 主要组问题,您应该通过构造一个find / -group Tomtype 命令来查看这些文件的存在位置来修复这些权限。

# 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
Run Code Online (Sandbox Code Playgroud)

确保汤姆有主要组汤姆

# usermod -g Tom Tom
Run Code Online (Sandbox Code Playgroud)

确保 Tom 不在根组中

# gpasswd -d Tom root
Removing user Tom from group root
Run Code Online (Sandbox Code Playgroud)

确保 root 不在 Tom 组中

# gpasswd -d root Tom
gpasswd: unknown member root
Run Code Online (Sandbox Code Playgroud)

如果您想阻止“Tom”获得任何管理员权限,您可以进一步检查“Tom”是否在 sudo 或 admin 组中;

  # gpasswd -d Tom sudo
  # gpasswd -d Tom admin
Run Code Online (Sandbox Code Playgroud)


小智 5

您应该更喜欢使用该vigr命令来编辑/etc/group. 它将在文件副本上启动您的编辑器;当您的编辑器退出时,它将进行语法检查,并且仅/etc/group在新文件检出时进行替换。

也有相应vipw的编辑命令/etc/passwd