• 技术文章 >运维 >linux运维

    linux可将用户从组中删除吗

    青灯夜游青灯夜游2023-03-20 10:17:11原创189

    可以。删除方法:1、使用usermod从组中删除用户,语法“sudo usermod -G root 用户名”;2、使用gpasswd从指定组中删除用户,语法“sudo gpasswd -d 用户名 组名”;3、编辑“/etc/group”文件,手动从组中删除用户。

    本教程操作环境:linux7.3系统、Dell G3电脑。

    在Linux中,用户可以是一个主要组和一个或几个次要(辅助)组的成员。文件“ / etc / group”为Linux系统中的每个用户定义了组成员身份。

    在本教程中,我们将学习如何在Linux组中删除用户。我们将使用两种方法,还将展示如何通过从“ / etc / group”文件中删除来手动从组中删除用户。

    创建Linux用户

    就本教程而言,我们将创建一个名为“ testuser”的用户。当创建一个新用户时,也会创建一个与该用户同名的新主要组。

    我们将通过发出以下命令来创建新用户:

    $ sudo useradd -m testuser

    现在,我们可以为该用户创建密码:

    $ sudo passwd testuser
    Changing password for user testuser.
    New password: 
    BAD PASSWORD: The password contains the user name in some form
    Retype new password: 
    passwd: all authentication tokens updated successfully.

    我使用了与用户名相同的密码,因此我收到警告,密码中不应包含用户名的某种形式。

    将用户添加到组

    首先,我们将使用groupadd命令创建两个新组,命令如下所示:

    $ sudo groupadd testgroup1$ sudo groupadd testgroup2

    现在,我们将“ testuser”用户添加到上面创建的两个组中,并使用以下命令将“ testuser”用户添加到“ root”组中:

    $ sudo usermod -a -G root testuser
    $ sudo usermod -a -G testgroup1 testuser
    $ sudo usermod -a -G testgroup2 testuser

    好的,现在来看一下“ / etc / group”文件,可以看到“ testuser”是这三个组的成员。

    $ cat /etc/grouproot:x:0:testuser.............testuser:x:1001:testgroup1:x:1002:testusertestgroup2:x:1003:testuser

    找出用户所属的组

    我们还可以使用以下两种替代方法来检查用户属于哪个组

    $ groups testuser
    testuser : testuser testgroup1 testgroup2 root$ id -nG testuser
    testuser testgroup1 testgroup2 root

    可以看到输出非常相似,并且这些命令完成的是相同的事情。

    使用usermod从组中删除用户

    我们可以使用usermod命令一次从一个或多个组中删除一个用户。使用usermod时,您必须指定将用户保留在哪些辅助组中。让我用一个示例来解释一下。

    $ groups testuser
    testuser : testuser testgroup1 testgroup2 root

    为了从“ testgroup1”和“ testgroup2”组中删除用户“ testuser”,请运行以下命令(即,仅将testuser保留在“ root”组中,它是主要的“ testuser”组):

    $ sudo usermod -G root testuser
    Results$ groups testuser
    testuser : testuser root

    因此,为了将用户划分为更多的组,您需要提及用逗号(,)分隔的组名,例如:

    $ sudo usermod -G root,testgroup1 testuser
    Results# groups testusertestuser : testuser root testgroup1

    使用gpasswd从组中删除用户

    完成相似结果的另一个命令是gpasswd。与usermod不同,我们使用此命令从指定的组中删除用户。

    要从一个特定的组中删除用户,我们可以使用gpasswd命令:

    $ sudo gpasswd -d testuser root
    Removing user testuser from group root
    
    $ groups testuser
    testuser : testuser testgroup1 testgroup2
    
    $ sudo gpasswd -d testuser testgroup1
    Removing user testuser from group testgroup1
    
    $ groups testuser
    testuser : testuser testgroup2

    从组中删除用户(手动)

    我们还可以通过手动编辑文件'/ etc / group'从组中删除用户。重新启动后,此方法的效果将应用于用户。

    你可以使用最喜欢的文本编辑器来编辑“ / etc / group”文件:

    $ cat /etc/group
    .............sssd:x:993:sshd:x:74:chrony:x:992:vagrant:x:1000:slocate:x:21:vboxsf:x:991:testuser:x:1001:testgroup1:x:1002:testusertestgroup2:x:1003:testuser$ groups testuser
    testuser : testuser testgroup1 testgroup2 root

    现在,我们将手动编辑最后两个条目来删除testuser,并从testgroup1和testgroup2中删除(编辑后的文件应如下所示):

    $ cat /etc/group.............
    sssd:x:993:
    sshd:x:74:
    chrony:x:992:
    vagrant:x:1000:
    slocate:x:21:
    vboxsf:x:991:
    testuser:x:1001:
    testgroup1:x:1002:
    testgroup2:x:1003:

    更改将在重新启动后进行,现在该用户已从这两个组中删除:

    $ groups testuser
    testuser : testuser root

    结论

    在本教程中,我们学习了如何使用usermod、gpasswd以及从“ / etc / group”文件中手动删除用户来从组中删除用户。

    相关推荐:《Linux视频教程

    以上就是linux可将用户从组中删除吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux
    上一篇:linux怎么查看目录是否为空 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • linux live版什么意义• linux .ssh在什么目录• linux desktop版本是什么意思• ubuntu属于linux吗• linux yum源是什么• Kali linux能做什么
    1/1

    PHP中文网