|NO.Z.00034|——————————|LinuxBasicEnd|——|Linux&用户管理.V04|
一、组管理命令:添加用户组:groupadd
### --- 添加用户组:groupadd
~~~ 添加用户组的命令是 groupadd,命令格式如下:
### --- 选项:
~~~ -g GID: 指定组 ID
~~~ 添加用户组的命令比较简单,举个例子:
[root@localhost ~]# groupadd [选项] 组名
~~~ 添加 group1 组
[root@localhost ~]# groupadd group1
[root@localhost ~]# grep "group1" /etc/group
group1:x:502:
二、删除用户组:groupdel
### --- 删除用户组:groupdel
### --- groupdel 命令用于删除用户组,命令格式如下:
[root@localhost ~]#groupdel 组名
### --- 例子:
~~~ 删除 testgrp 组
~~~ 不过大家要注意,要删除的组不能是其他用户的初始组,
~~~ 也就是说这个组中没有初始用户才可以删除。如果组中有附加用户,则删除组时不受影响。
[root@localhost ~]# groupdel testgrp
三、把用户添加进组或从组中删除:gpasswd
### --- 把用户添加进组或从组中删除:gpasswd
### --- 其实 gpasswd 命令是用来设定组密码并指定组管理员的,不过我们在前面已经说了,
~~~ 组密码和组管理员功能很少使用,而且完全可以被 sudo 命令取代,
~~~ 所以 gpasswd 命令现在主要用于把用户添加进组或从组中删除。命令格式如下:
### --- 选项:
~~~ -a 用户名: 把用户加入组
~~~ -d 用户名: 把用户从组中删除
[root@localhost ~]# gpasswd [选项] 组名
### --- 举个例子:
[root@localhost ~]# groupadd grouptest
~~~ 添加组 grouptest
[root@localhost ~]# gpasswd -a user1 grouptest
Adding user user1 to group grouptest
~~~ 把用户 user1 加入 grouptest 组
[root@localhost ~]# grep "user1" /etc/group
user1:x:501:
grouptest:x:505:user1
~~~ 查看一下,user1 用户已经作为附加用户加入 grouptest 组
[root@localhost ~]# gpasswd -d user1 grouptest
Removing user user1 from group grouptest
~~~ 把用户 user1 从组中删除
~~~ 组中没有 user1 用户了
~~~ 大家注意,也可以使用 usermod 命令把用户加入某个组,
~~~ 不过 usermod 命令的操作对象是用户,
~~~ 命令是“usermod -G grouptest user1”,把用户名作为参数放在最后;
~~~ 而 gpasswd 命令的操作对象是组,命令是“gpasswd -a user1 grouptest”,
~~~ 把组名作为参数放在最后。
[root@localhost ~]# grep "grouptest" /etc/group
grouptest:x:505:
四、改变有效组:newgrp
### --- 改变有效组:newgrp
~~~ 我们说过,每个用户可以属于一个初始组(用户是这个组的初始用户),
~~~ 也可以属于多个附加组(用户是这个组的附加用户)。既然用户可以属于这么多用户组,
~~~ 那么用户在创建文件后,默认生效的组身份是哪个呢?当然是初始用户组的组身份生效了,
~~~ 因为初始组是用户一旦登录就直接获得的组
~~~ 身份。也就是说,用户在创建文件后,文件的属组是用户的初始组,因为用户的有效组默认是初始组。
~~~ 既然用户属于多个用户组,那么能不能改变用户的有效组呢?
~~~ 使用命令 newgrp 就可以切换用户的有效组。命令格式如下:
[root@localhost ~]# newgrp 组名
### --- 举个例子,我们已经有了普通用户 user1,默认会建立 user1 用户组,
~~~ user1 组是 user1 用户的初始组。我们再把 user1 用户加入 group1 组,
~~~ 那么 group1 组就是 user1 用户的附加组。当 user1 用
~~~ 户创建文件 test1 时,test1 文件的属组是 user1 组,
~~~ 因为 user1 组是 user1 用户的有效组。通过 newgrp
~~~ 命令就可以把 user1 用户的有效组变成 group1 组,当 user1 用户创建文件 test2 时,
~~~ 就会发现 test2文件的属组就是 group1 组。命令如下:
[root@localhost ~]# groupadd group1
~~~ 添加组 group1
[root@localhost ~]# gpasswd -a user1 group1
Adding user user1 to group group1
~~~ 把 user1 用户加入 group1 组
[root@localhost ~]# grep "user1" /etc/group
user1:x:501:
group1:x:503:user1
~~~ user1 用户既属于 user1 组,也属于 group1 组
[root@localhost ~]# su – user1
~~~ 切换成 user1 身份,超级用户切换成普通用户不用密码
[user1@localhost ~]$ touch test1
~~~ 创建文件 test1
[user1@localhost ~]$ ll test1
-rw-rw-r-- 1 user1 user1 0 1 月
14 05:43 test1
~~~ test1 文件的默认属组是 user1 组
[user1@localhost ~]$ newgrp group1
~~~ 切换 user1 用户的有效组为 group1 组
[user1@localhost ~]$ touch test2
~~~ 创建文件 test2
~~~ test2 文件的默认属组是 group1 组
~~~ 通过这个例子明白有效组的作用了吗?其实就是当用户属于多个组时,
~~~ 在创建文件时哪个组身份生效。使用 newgrp 命令可以在多个组身份之间切换。
[user1@localhost ~]$ ll test2
-rw-r--r-- 1 user1 group1 0 1 月 14 05:44 test2
五、组权限实验
### --- 添加组
[root@server11 ~]# groupadd yanqigroup
### --- 删除组
[root@server11 ~]# groupdel yanqigroup
### --- 手动把用户添加到组里
[root@server11 ~]# gpasswd -a yanqi1 yanqigroup #推荐使用gpasswd添加用户到附加组里
Adding user yanqi1 to group yanqigroup
[root@server11 ~]# gpasswd -a yanqi2 yanqigroup
Adding user yanqi2 to group yanqigroup
~~~ 查看添加是否成功
[root@server11 ~]# cat /etc/group
yanqigroup:x:1004:yanqi1,yanqi2
### --- 删除组内用户
[root@server11 ~]# gpasswd -d yanqi1 yanqigroup
Removing user yanqi1 from group yanqigroup
[root@server11 ~]# gpasswd -d yanqi2 yanqigroup
Removing user yanqi2 from group yanqigroup
[root@server11 ~]# cat /etc/group
yanqigroup:x:1004:
### --- 若是初始用户存在,是不可以删除用户的初始组
[root@server11 ~]# useradd -g yanqigroup yanqi3
[root@server11 ~]# useradd -g yanqigroup yanqi4
[root@server11 ~]# userdel -r yanqi4 // 删除用户4
[root@server11 ~]# groupdel yanqigroup
groupdel: cannot remove the primary group of user 'yanqi3'
~~~ 若是想删除这个组,必须删除组内的初始用户
[root@server11 ~]# userdel -r yanqi3 // 删除组之前,必须没有初始用户,否则是删除不了的。
[root@server11 ~]# groupdel yanqigroup
### --- 改变有效组:newgrp
~~~ 查询用户相关信息
[root@server11 ~]# id yanqi
uid=1001(yanqi) gid=1001(yanqi) groups=1001(yanqi)
~~~ 查看当前登录用户
[root@server11 ~]# whoami
root
### --- 组权限实验:组内用户可以上传修改自己的文件,且对组内文件有没有控制权限;示例如下
[root@server11 ~]# mkdir /www
[root@server11 ~]# ll -d /www/
drwxr-xr-x 2 root root 6 Mar 10 21:17 /www/
~~~ 新建用户并创建组,并且把用户添加到该组里面
[root@server11 ~]# useradd www1
[root@server11 ~]# passwd www1
[root@server11 ~]# useradd www2
[root@server11 ~]# passwd www2
[root@server11 ~]# groupadd www
~~~ 将用户添加到组里
[root@server11 ~]# gpasswd -a www1 www
Adding user www1 to group www
[root@server11 ~]# gpasswd -a www2 www
Adding user www2 to group www
[root@server11 ~]# cat /etc/group
www:x:1005:www1,www2
~~~ 改变目录所有者和所属组
[root@server11 ~]# ll -d /www/
drwxr-xr-x 2 root root 6 Mar 10 21:17 /www/
[root@server11 ~]# chown www1:www /www/
[root@server11 ~]# ll -d /www/
drwxr-xr-x 2 www1 www 6 Mar 10 21:17 /www/
~~~ 改变文件权限
[root@server11 ~]# chmod 770 /www/
[root@server11 ~]# ll -d /www/
drwxrwx--- 2 www1 www 6 Mar 10 21:17 /www/
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv005-basic
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」