总结

总结

总结

testserver我使用我的帐户登录到服务器,并且由于我在该组中,因此testuser我可以执行操作。sudo -ssysadm

当我查询群组时,我得到了该sysadm群组,但是当我直接用该群组查询时,cat /etc/group或者getent group sysadm我的登录名未列在该群组中。

为什么?

长版本

我有一个用户帐户testuser,可以用来通过 putty(SSH)登录到服务器(Ubuntu 14.04)上的终端会话testserver

当我运行该groups命令时,我的帐户获得以下输出:

sysadm

好的,所以我应该在 sysadm 组中。然后我列出 sysadm 组成员:

getent group sysadm

...产生以下结果:

sysadm:x:800:

这时我有点困惑。我(testuser)在组中,但我(从视觉上)又不在该组中,因为在组输出的末尾没有条目。

我使用 visudo 查看了 sudoer 配置。我有以下配置:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
#%admin ALL=(ALL) ALL
%sysadm ALL=(ALL) ALL

# Allow members of group sudo to execute any command
#%sudo  ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

这就是该文件中的所有内容。

概括

  1. 我发现我在这个sysadm群组里
  2. sysadm群组尚无任何成员
  3. 我可以sudo -s做任何我想做的事

问题

  1. 我如何才能从系统中检索信息,告诉我为什么我处于系统管理员团体?
  2. 是否有其他我目前不知道的配置设置会将我的登录名放入组中?
    a) Active Directory
    b) 策略
    c) ...

到目前为止,我已经阅读了以下文章,但没有一篇帮助我找到为什么我在 sysadm 组中但(视觉上)不在该组中。

答案1

您在 /etc/passwd 中的输入是否在登录时将您置于 800 组中?getent passwd $USER | cut -d: -f4将显示您的登录组。您(或任何人)如何创建 testuser 帐户?

要更改您的group,您必须更改/etc/passwd(man vipw),并使用更改所有文件和目录的组sudo chgrp -R $NewGroup $HOME,然后注销并再次登录。

“用户”(相对于“系统”)组通常从 开始1000,但您可以签入/etc/login.defsUID_MIN)。

再次,您(或任何人)是如何创建该testuser帐户的?

相关内容