八、linux 之 组管理和权限管理
一、组管理
1.1 基本介绍
在 linux 中的每个用户必须属于一个组,不能独立于组外。
在 linux 中每个文件有 所有者、所在组、其它组 的概念。
# ls -ahl 或者 ll [root@WANFYONG /home]# ls -ahl 总用量 52K drwxr-xr-x. 7 root root 4.0K 5月 10 10:30 . dr-xr-xr-x. 18 root root 4.0K 5月 6 21:30 .. drwxr-xr-x. 3 root root 4.0K 5月 9 14:49 bbb drwx------. 5 fox monster 4.0K 5月 9 11:36 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 9 11:38 orange.txt drwx------. 3 wangwang hefei 4.0K 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4.0K 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4.0K 5月 6 16:19 wangyongyong [root@WANFYONG /home]#
# chown 用户名 文件名 # 使用 root 创建一个文件 apple.txt ,然后将其所有者修改成 wangyong [root@WANFYONG /home]# touch apple.txt [root@WANFYONG /home]# [root@WANFYONG /home]# ll 总用量 44 -rw-r--r--. 1 root root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4096 5月 9 14:49 bbb drwx------. 5 fox monster 4096 5月 9 11:36 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 9 11:38 orange.txt drwx------. 3 wangwang hefei 4096 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4096 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4096 5月 6 16:19 wangyongyong [root@WANFYONG /home]# [root@WANFYONG /home]# chown wangyong apple.txt [root@WANFYONG /home]# [root@WANFYONG /home]# ls -ahl 总用量 52K drwxr-xr-x. 7 root root 4.0K 5月 10 10:33 . dr-xr-xr-x. 18 root root 4.0K 5月 6 21:30 .. -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4.0K 5月 9 14:49 bbb drwx------. 5 fox monster 4.0K 5月 9 11:36 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 9 11:38 orange.txt drwx------. 3 wangwang hefei 4.0K 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4.0K 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4.0K 5月 6 16:19 wangyongyong [root@WANFYONG /home]#
# groupadd 组名 # 创建一个组 monster, 创建一个用户 fox ,并放入到 monster 组中 [root@WANFYONG /home]# ll 总用量 40 -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4096 5月 9 14:49 bbb -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 9 11:38 orange.txt drwx------. 3 wangwang hefei 4096 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4096 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4096 5月 6 16:19 wangyongyong [root@WANFYONG /home]# [root@WANFYONG /home]# [root@WANFYONG /home]# [root@WANFYONG /home]# groupadd monster [root@WANFYONG /home]# [root@WANFYONG /home]# [root@WANFYONG /home]# useradd -g monster fox [root@WANFYONG /home]# [root@WANFYONG /home]# ll 总用量 44 -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4096 5月 9 14:49 bbb drwx------. 3 fox monster 4096 5月 10 11:04 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 9 11:38 orange.txt drwx------. 3 wangwang hefei 4096 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4096 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4096 5月 6 16:19 wangyongyong [root@WANFYONG /home]#
# ls -ahl 或者 ll [root@WANFYONG /home]# ls -ahl 总用量 52K drwxr-xr-x. 7 root root 4.0K 5月 10 11:04 . dr-xr-xr-x. 18 root root 4.0K 5月 6 21:30 .. -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4.0K 5月 9 14:49 bbb drwx------. 3 fox monster 4.0K 5月 10 11:04 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 9 11:38 orange.txt drwx------. 3 wangwang hefei 4.0K 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4.0K 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4.0K 5月 6 16:19 wangyongyong [root@WANFYONG /home]#
# chgrp 组名 文件名 # 使用 root 用户创建文件 orange.txt ,看看当前这个文件属于哪个组,然后将这个文件所在组,修改到 fruit 组 [root@WANFYONG /home]# groupadd fruit [root@WANFYONG /home]# [root@WANFYONG /home]# touch orange.txt [root@WANFYONG /home]# [root@WANFYONG /home]# ls -ahl 总用量 52K drwxr-xr-x. 7 root root 4.0K 5月 10 11:04 . dr-xr-xr-x. 18 root root 4.0K 5月 6 21:30 .. -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4.0K 5月 9 14:49 bbb drwx------. 3 fox monster 4.0K 5月 10 11:04 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root 1003 0 5月 10 11:13 orange.txt drwx------. 3 wangwang hefei 4.0K 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4.0K 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4.0K 5月 6 16:19 wangyongyong [root@WANFYONG /home]# [root@WANFYONG /home]# [root@WANFYONG /home]# chgrp fruit orange.txt [root@WANFYONG /home]# [root@WANFYONG /home]# ll 总用量 44 -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4096 5月 9 14:49 bbb drwx------. 3 fox monster 4096 5月 10 11:04 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 10 11:13 orange.txt drwx------. 3 wangwang hefei 4096 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4096 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4096 5月 6 16:19 wangyongyong [root@WANFYONG /home]#
# usermod –g 新组名 用户名 # usermod –d 目录名 用户名 改变该用户登陆的初始目录。特别说明:用户需要有进入到新目录的权限。 # 将 wangwang 这个用户从原来所在组,修改到 shanghai 组 [root@WANFYONG /home]# ll 总用量 44 -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4096 5月 9 14:49 bbb drwx------. 3 fox monster 4096 5月 10 11:04 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 10 11:13 orange.txt drwx------. 3 wangwang hefei 4096 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4096 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4096 5月 6 16:19 wangyongyong [root@WANFYONG /home]# [root@WANFYONG /home]# [root@WANFYONG /home]# usermod -g shanghai wangwang [root@WANFYONG /home]# [root@WANFYONG /home]# ls -ahl 总用量 52K drwxr-xr-x. 7 root root 4.0K 5月 10 11:04 . dr-xr-xr-x. 18 root root 4.0K 5月 6 21:30 .. -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4.0K 5月 9 14:49 bbb drwx------. 3 fox monster 4.0K 5月 10 11:04 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 10 11:13 orange.txt drwx------. 3 wangwang shanghai 4.0K 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4.0K 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4.0K 5月 6 16:19 wangyongyong [root@WANFYONG /home]#
二、权限管理
2.1 权限管理基本介绍
![]()
ls -l 中显示的内容如下:
-rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt
0-9 位说明:
第 0 位确定文件类型(d, - , l , c , b) l 是链接,相当于 windows 的快捷方式 d 是目录,相当于 windows 的文件夹 c 是字符设备文件,鼠标,键盘 b 是块设备,比如硬盘
第 1-3 位确定所有者(该文件的所有者)拥有该文件的权限。---User
第 4-6 位确定所属组(同用户组的)拥有该文件的权限,---Group
第 7-9 位确定其他用户拥有该文件的权限 ---Other
2.2 rwx 权限详解
1. r: 代表可读(read): 可以读取,查看
2. w: 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权 限,才能删除该文件.
3. x: 代表可执行(execute):可以被执行
1. r: 代表可读(read): 可以读取,ls 查看目录内容
2. w: 代表可写(write): 可以修改, 对目录内创建+删除+重命名目录
3. x: 代表可执行(execute):可以进入该目录
10 个字符确定不同用户能对文件干什么:
1. 第一个字符代表文件类型: - l d c b 其余字符每 3 个一组(rwx) 读(r) 写(w) 执行(x)
2. 第一组 rw- : 文件拥有者的权限是读、写权限,没有执行权限
3. 第二组 r-- : 与文件拥有者同一组的用户的权限是读权限,没有写和执行权限
4. 第三组 r-- : 不与文件拥有者同组的其他用户的权限是读,没有写和执行权限
2.4 修改权限(chmod)
2.4.1 方式1:+
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
1. chmod u=rwx,g=rx,o=x 文件/目录名
2. chmod o+w 文件/目录名
3. chmod a-x 文件/目录名
# 1. 给 abc 文件 的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。 chmod u=rwx,g=rx,o=rx abc # 2. 给 abc 文件的所有者除去执行的权限,增加组写的权限 chmod u-x,g+w abc # 3. 给 abc 文件的所有用户添加读的权限 chmod a+r abc[root@WANFYONG /home]# ll | grep abc -rw-r--r--. 1 root root 0 5月 10 15:10 abc [root@WANFYONG /home]# [root@WANFYONG /home]# chmod u=rwx,g=rx,o=rx abc [root@WANFYONG /home]# [root@WANFYONG /home]# ll | grep abc -rwxr-xr-x. 1 root root 0 5月 10 15:10 abc [root@WANFYONG /home]# [root@WANFYONG /home]# chmod u-x,g+w abc [root@WANFYONG /home]# [root@WANFYONG /home]# ll | grep abc -rw-rwxr-x. 1 root root 0 5月 10 15:10 abc [root@WANFYONG /home]# [root@WANFYONG /home]# chmod a+r abc [root@WANFYONG /home]# [root@WANFYONG /home]# ll | grep abc -rw-rwxr-x. 1 root root 0 5月 10 15:10 abc
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o=x 文件目录名
相当于 chmod 751 文件/目录名# 将 /home/abc 文件的权限修改成 rwxr-xr-x, 使用给数字的方式实现: # chmod 755 abc [root@WANFYONG /home]# ll | grep abc -rw-rwxr-x. 1 root root 0 5月 10 15:10 abc [root@WANFYONG /home]# [root@WANFYONG /home]# chmod 755 abc [root@WANFYONG /home]# [root@WANFYONG /home]# ll | grep abc -rwxr-xr-x. 1 root root 0 5月 10 15:10 abc
/* police , bandit jack, jerry: 警察 xh, xq: 土匪 */ # 1) 创建组 groupadd police groupadd bandit # 2) 创建用户 useradd -g police jack useradd -g police jerry useradd -g bandit xh useradd -g bandit xq # 3) jack 创建一个文件,自己可以读 r 写 w,本组人可以读,其它组没人任何权限 首先 jack 登录 vim jack.txt chmod 640 jack.txt # 4) jack 修改该文件,让其它组人可以读, 本组人可以读写 chmod o=r,g=r jack.txt # 5) xh 投靠 警察,看看是否可以读写. usermod -g police xh # 6) 测试,看看 xh 是否可以读写,xq 是否可以, 小结论,就是如果要对目录内的文件进行操作,需要要有对该目录的 相应权限
[root@WANFYONG /home]# groupadd police [root@WANFYONG /home]# groupadd bandit [root@WANFYONG /home]# [root@WANFYONG /home]# useradd -g police jack [root@WANFYONG /home]# useradd -g police jerry [root@WANFYONG /home]# [root@WANFYONG /home]# useradd -g bandit xh [root@WANFYONG /home]# useradd -g bandit xq
[jack@WANFYONG ~]$ vim jack.txt [jack@WANFYONG ~]$ [jack@WANFYONG ~]$ ll | grep jack.txt -rw-r--r--. 1 jack police 6 5月 10 15:31 jack.txt [jack@WANFYONG ~]$ [jack@WANFYONG ~]$ chmod 640 jack.txt [jack@WANFYONG ~]$ [jack@WANFYONG ~]$ ll | grep jack.txt -rw-r-----. 1 jack police 6 5月 10 15:31 jack.txt [jack@WANFYONG ~]$ [jack@WANFYONG ~]$ chmod o=r,g=rw jack.txt [jack@WANFYONG ~]$ [jack@WANFYONG ~]$ ll | grep jack.txt -rw-rw-r--. 1 jack police 6 5月 10 15:31 jack.txt [jack@WANFYONG ~]$
[root@WANFYONG /home]# usermod -g police xh [root@WANFYONG /home]# [root@WANFYONG /home]# ll | grep jack.txt [root@WANFYONG /home]#
[root@WANFYONG /home]# ll 总用量 60 -rwxr-xr-x. 1 root root 0 5月 10 15:10 abc -rw-r--r--. 1 wangyong root 0 5月 10 10:33 apple.txt drwxr-xr-x. 3 root root 4096 5月 9 14:49 bbb drwx------. 3 fox monster 4096 5月 10 11:04 fox -rw-r--r--. 1 root root 77 5月 7 11:24 hello.c -rw-r--r--. 1 root root 412 5月 7 16:32 hi.tar.gz -rw-r--r--. 1 root root 440 5月 7 14:12 info.txt drwx------. 5 jack police 4096 5月 10 15:31 jack drwx------. 3 jerry police 4096 5月 10 15:21 jerry -rw-r--r--. 1 root root 381 5月 7 16:22 mybbb.zip -rw-r--r--. 1 root root 145 5月 7 14:12 mycal -rw-r--r--. 1 root root 12 5月 7 12:05 mydata.txt -rw-r--r--. 1 root fruit 0 5月 10 11:13 orange.txt drwx------. 3 wangwang shanghai 4096 5月 6 16:49 wangwang drwx------. 5 wangyong shanghai 4096 5月 9 14:48 wangyong drwx------. 3 wangwang shanghai 4096 5月 6 16:19 wangyongyong drwx------. 3 xh police 4096 5月 10 15:22 xh drwx------. 3 xq bandit 4096 5月 10 15:22 xq [root@WANFYONG /home]#
jack 文件夹下的jack.txt。 其他用户要想访问到 jack.txt,必须要访问到 jack 这个文件夹目录。但是jcak这个文件夹目录对组的其他用户以及其他组都没有权限,所以要想访问到 jack.txt ,必须要先给jack这个目录权限。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步