在研究 Linux Essentials 时,我尝试从我创建的组中删除用户(我)。按照在线说明,我最终从所有默认组中删除了自己,现在我唯一的成员资格是在我自己的组中。
这是我的问题:
- 如何从特定组中删除用户?如果
usermod
允许使用 进行添加-a -G
,则必须有一种类似简单的方法将用户从组中删除。 - 是否有可用于恢复我的组成员身份的命令? (即
sudo
团体、xdm
团体等) - 最后,是否手动编辑
/etc/passwd
或/etc/group
操作组成员身份、添加和删除?
如上所述,我刚刚完成了 Linux Essentials,所以我是一个初学者。在提供您的意见及其可能包含的任何说明时,请记住这一点。
答案1
下面我来回答你的问题:
如何从特定组中删除用户?
您可以usermod
在不使用该-a
选项和使用该-G
选项的情况下使用,但您需要列出您希望用户成为其成员的所有辅助组。我不知道如何按名称从组中删除用户。是否有可用于恢复我的组成员身份的命令?
是的,usermod
。你会用usermod -G <comma_separated_list_of_groups> <username>
.手动编辑是否可以
/etc/{passwd,group}
操作组成员身份、添加和删除?
是的,像这样的工具usermod
安全地操纵这些文件。您可以手动执行此操作,但如果您犯了错误,您可能会遇到无法再登录的用户。
答案2
最直接的答案是肯定的 -> 一切都发生在这两个文件/etc/passwd
和/etc/group
.请记住给定帐户的密码存储在/etc/shadow
.
默认情况下(例如在 RHEL/CentOS 7 中)任何新用户都会被创建并赋予自己的用户独特的群组名称(或 ID 号)。但不属于某个组并不会完全阻止登录。也就是说,我相信新用户帐户在创建帐户时会获得自己独特的组,但它们不是通用组的一部分用户组的典型组 ID 为 100。并且一切正常。
虽然可能不建议这样做,但出于正当理由,您在技术上可以简单地手动编辑/etc/passwd
和/etc/group
创建新的用户帐户和新组。这实际上是所有命令useradd
和usermod
技术上的作用。
当用户的主帐户不存在时,您可能会遇到问题拥有的由该用户执行,因此登录后通常会出现一个非常简单的 shell 提示,例如$
警告。但从技术上来说用户仍然可以登录,只是会失去很多理所当然的功能。通过 SSH 通过网络登录通常仍然可以正常工作。但是在有图形的控制台上登录可能会失败,因为您无法访问自己的主文件夹(而不是因为组权限)。希望有帮助。
答案3
除了usermod
Andy Dalton 介绍的之外,您还可以使用gpasswd
:
gpasswd -d username groupname
这会将用户从指定组中删除。这种方式不太繁琐,因为您可以简单地使用用户名和组名作为参数,而不是使用usermod
.
手动编辑/etc/passwd
和/etc/group
具有相同的效果,但如果您要这样做,请分别使用工具vipw -s
或vigr -s
。它们将防止文件中出现文本错误,这些错误可能导致任何人都无法登录。因此,请勿使用文本编辑器编辑它们vim
。