八、linux 之 组管理和权限管理

一、组管理

1.1 基本介绍

在 linux 中的每个用户必须属于一个组,不能独立于组外。
在 linux 中每个文件有 所有者、所在组、其它组 的概念。

1.2 文件/目录 所有者

一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。

1.2.1 查看文件的所有者 (ls -ahl 或者 ll)

# 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]# 

1.2.2 修改文件所有者 (chown )

# 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]# 

1.3 组的创建

# 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]# 

1.4 文件/目录 所在组

当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)。

1.4.1 查看文件/目录所在组 (ls –ah 或者 ll)

# 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]# 

1.4.2 修改文件/目录所在的组 (chgrp)

# 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]# 

1.5 其他组

除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组

1.6 改变用户所在组

在添加用户时,可以指定将该用户添加到哪个组中,同样的用 root 的管理权限可以改变某个用户所在的组

# 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 权限详解

2.2.1 rwx 作用到文件

1. r: 代表可读(read): 可以读取,查看
2. w: 代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权 限,才能删除该文件.
3. x: 代表可执行(execute):可以被执行

2.2.2 rwx 作用到目录

1. r: 代表可读(read): 可以读取,ls 查看目录内容
2. w: 代表可写(write): 可以修改, 对目录内创建+删除+重命名目录
3. x: 代表可执行(execute):可以进入该目录

2.3 文件及目录权限实际案例

-rw-r--r--. 1 wangyong root        0 5月  10 10:33 apple.txt

 

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

2.4.2 方式2:通过数字变更权限

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这个目录权限。

 

posted on 2022-05-10 19:54  软饭攻城狮  阅读(26)  评论(0编辑  收藏  举报

导航