第十章 权限管理

组管理

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

  • 所有者
  • 所有组
  • 其他组
  • 改变用户所在组
文件/目录 所有者

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

查看文件的所有者

  • ls -l或者ll
  • 应用实例:创建一个组police,再创建一个用户tom,将tom放在police组,然后使用tom创建文件ok.txt
    [root@localhost /]# groupadd police
    [root@localhost /]# useradd -g police tom
    [root@localhost /]# passwd tom
    [root@localhost /]# su tom
    [tom@localhost /]$ cd /home/tom/
    [tom@localhost ~]$ ll
    总用量 0
    [tom@localhost ~]$ touch ok.txt
    [tom@localhost ~]$ ll
    总用量 0
    -rw-r--r--. 1 tom(所有者) police(所有组) 0 89 23:30 ok.txt
    

修改文件的所有者

  • chown 用户名 文件名
  • 应用实例:使用root创建文件apple.txt,然后再将其所有者修改成tom
    [root@localhost tom]# ll
    总用量 0
    -rw-r--r--. 1 tom police 0 89 23:30 ok.txt
    [root@localhost tom]# touch apple.txt
    [root@localhost tom]# ll
    总用量 0
    -rw-r--r--. 1 root root   0 89 23:36 apple.txt
    -rw-r--r--. 1 tom  police 0 89 23:30 ok.txt
    [root@localhost tom]# chown tom apple.txt 
    [root@localhost tom]# ll
    总用量 0
    -rw-r--r--. 1 tom root   0 89 23:36 apple.txt
    -rw-r--r--. 1 tom police 0 89 23:30 ok.txt
    
文件/目录所有组

组的创建

  • goupadd 组名
  • 应用案例:创建一个组monster,创建一个用户fox,并放在monster中
    [root@localhost tom]# groupadd monster
    [root@localhost tom]# useradd -g monster fox
    [root@localhost tom]# id fox
    uid=1005(fox) gid=1006(monster)=1006(monster)
    

查看文件/目录所有组

  • ls -lll

修改文件/目录所在组

  • chgrp 组名 文件名
  • 使用root用户创建orange.txt,看看当前文件属于哪个组,然后将这个文件所在组修改到police组
    [root@localhost tom]# ll
    总用量 0
    -rw-r--r--. 1 tom root   0 89 23:36 apple.txt
    -rw-r--r--. 1 tom police 0 89 23:30 ok.txt
    [root@localhost tom]# touch orange.txt
    [root@localhost tom]# ll
    总用量 0
    -rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
    -rw-r--r--. 1 tom  police 0 89 23:30 ok.txt
    -rw-r--r--. 1 root root   0 89 23:48 orange.txt
    [root@localhost tom]# chgrp police orange.txt 
    [root@localhost tom]# ll
    总用量 0
    -rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
    -rw-r--r--. 1 tom  police 0 89 23:30 ok.txt
    -rw-r--r--. 1 root police 0 89 23:48 orange.txt
    
其他组

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

权限管理

权限的基本介绍

rwx(7)作用详解

  • r(4):作用在文件表示可以读取,查看,作用在目录,表示可以读取(ls)
  • w(2):作用在文件,可以修改文件,但是不能删除文件,作用在目录,则表示可以修改,目录内创建+删除+重命名目录
  • x(1):作用在文件,代表可执行,作用在目录,代表可以进入
[root@localhost hz]# ll
总用量 60
drwx------. 4 hz   hz    4096 721 22:35 hz
-rw-r--r--. 1 root root 17589 720 22:32 mydate.txt
drwxr-xr-x. 2 root root  4096 721 22:30 test
drwxr-xr-x. 2 hz   hz    4096 89 23:19 公共
drwxr-xr-x. 2 hz   hz    4096 89 23:19 模板
drwxr-xr-x. 2 hz   hz    4096 89 23:19 视频
drwxr-xr-x. 2 hz   hz    4096 89 23:19 图片
drwxr-xr-x. 2 hz   hz    4096 89 23:19 文档
drwxr-xr-x. 2 hz   hz    4096 89 23:19 下载
drwxr-xr-x. 2 hz   hz    4096 89 23:19 音乐
d(A)rwx(B)r-x(C)r-x(D). 2(E) hz(F)   hz(G)    4096(H) 89 23:19(I) 桌面(J)

A文件类型(一个一组):

  • -:普通文件
  • d:目录
  • l:软连接
  • c:字符设备(键盘、鼠标)
  • b:块文件(硬盘)

B文件所有者的权限(三个一组):

  • r:只读
  • w:只写
  • -:没有权限

C文件所在组拥有的权限(三个一组):

  • r:只读
  • w:只写
  • -:没有权限

D文件其他组的用户所拥有的权限(三个一组):

  • r:只读
  • w:只写
  • -:没有权限

E表示: 如果是文件,则表示硬链接的数量,如果是目录,则表示该目录下的子目录个数

F表示: 所属用户

G表示: 所属组

H表示: 如果是文件,则表示文件大小,如果是目录,则固定是4096

I表示: 文件最后的修改时间

J表示: 文件名称

管理权限

chmod指令,可以修改文件或者目录的权限

  • 第一种方式:+、-、=变更权限

    u:所有者、g:所有组、o:其他人、a:所有人

    • chmod u=rwx,g=rx,o=x 文件/目录名称:表示修改文件/目录的权限(直接覆盖原来的权限)
    • chmod o+w 文件/目录名称:在某文件/目录原来权限的基础上加权限
    • chmod a-x 文件/目录名称:在某文件/目录原来的基础上减权限
    
    # 案例演示
    
    # 1. 给abc文件的所有者读写执行权限,给所在组读执行权限,给其他组读执行权限
    
    [tom@localhost ~]$ ll
总用量 0
  - rw-r--r--. 1 tom  bandit 0 811 22:54 abc.txt
  - rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
  - rw-r--r--. 1 tom  bandit 0 89 23:30 ok.txt
  - rw-r--r--. 1 root bandit 0 89 23:48 orange.txt
[tom@localhost ~]$ chmod u=rwx,g=rx,o=rx abc.txt 
[tom@localhost ~]$ ll
总用量 0
  - rwxr-xr-x. 1 tom  bandit 0 811 22:54 abc.txt
  - rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
  - rw-r--r--. 1 tom  bandit 0 89 23:30 ok.txt
  - rw-r--r--. 1 root bandit 0 89 23:48 orange.txt
    
    # 2. 给文件的所有者除去执行权限,增加所有组写的权限
    
    [tom@localhost ~]$ ll
总用量 0
  - rwxr-xr-x. 1 tom  bandit 0 811 22:54 abc.txt
  - rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
  - rw-r--r--. 1 tom  bandit 0 89 23:30 ok.txt
  - rw-r--r--. 1 root bandit 0 89 23:48 orange.txt
[tom@localhost ~]$ chmod u-x,g+w abc.txt 
[tom@localhost ~]$ ll
总用量 0
  - rw-rwxr-x. 1 tom  bandit 0 811 22:54 abc.txt
  - rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
  - rw-r--r--. 1 tom  bandit 0 89 23:30 ok.txt
  - rw-r--r--. 1 root bandit 0 89 23:48 orange.txt
    
    # 3. 给abc文件所有用户添加读权限
    
    [root@localhost tom]# ll
总用量 0
  - rw-rwxr-x. 1 tom  bandit 0 811 22:54 abc.txt
  - rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
  - rw-r--r--. 1 tom  bandit 0 89 23:30 ok.txt
  - rw-r--r--. 1 root bandit 0 89 23:48 orange.txt
[root@localhost tom]# chmod a+r abc.txt 
[root@localhost tom]# ll
总用量 0
  - rw-rwxr-x. 1 tom  bandit 0 811 22:54 abc.txt
  - rw-r--r--. 1 tom  root   0 89 23:36 apple.txt
  - rw-r--r--. 1 tom  bandit 0 89 23:30 ok.txt
  - rw-r--r--. 1 root bandit 0 89 23:48 orange.txt
  • 第二种方式:通过数字变更权限

    r=4、w=2、x=1、rwx=7

    chmod u=rwx,g=rx,o=x 文件/目录名相当于chmod 751 文件/目录名

    # 案例演示
    # 将abc.txt文件的权限修改成rwxr-xr-x,使用给数字的方式实现
    [root@localhost tom]# ll
    总用量 0
    -rw-r--r--. 1 root root 0 811 23:14 abc.txt
    [root@localhost tom]# chmod 755 abc.txt 
    [root@localhost tom]# ll
    总用量 0
    -rwxr-xr-x. 1 root root 0 811 23:14 abc.txt
    

修改文件所有者

chown newowner file:改变文件的所有者

chown newowner:newgroup file:改变用户所有者和所有组

-R 如果是目录,则使其下所有子文件或目录递归生效

# 案例演示
# 请将abc.txt文件的所有者修改成tom
[root@localhost fox]# ll
总用量 0
-rw-r--r--. 1 fox monster 0 811 23:23 abc.txt
[root@localhost fox]# chown tom abc.txt 
[root@localhost fox]# ll
总用量 0
-rw-r--r--. 1 tom monster 0 811 23:23 abc.txt
# 请将kkk目录下所有文件和目录的所有者都修改成tom
[root@localhost fox]# ll
总用量 4
-rw-r--r--. 1 tom monster    0 811 23:25 abc.txt
drwxr-xr-x. 2 fox monster 4096 811 23:32 kkk
[root@localhost fox]# ll kkk
总用量 0
-rw-r--r--. 1 fox monster 0 811 23:32 abcd.txt
[root@localhost fox]# chown -R tom kkk
[root@localhost fox]# ll
总用量 4
-rw-r--r--. 1 tom monster    0 811 23:25 abc.txt
drwxr-xr-x. 2 tom monster 4096 811 23:32 kkk
[root@localhost fox]# ll kkk
总用量 0
-rw-r--r--. 1 tom monster 0 811 23:32 abcd.txt

修改文件所在组

chgrp newgroup file:修改文件所在组

-R 如果是目录,则使其下所有子文件或目录递归生效

# 案例演示
# 请将abc.txt文件的所在组改成bandit
[root@localhost fox]# ll
总用量 4
-rw-r--r--. 1 tom monster    0 811 23:25 abc.txt
drwxr-xr-x. 2 tom monster 4096 811 23:32 kkk
[root@localhost fox]# chgrp bandit abc.txt 
[root@localhost fox]# ll
总用量 4
-rw-r--r--. 1 tom bandit     0 811 23:25 abc.txt
drwxr-xr-x. 2 tom monster 4096 811 23:32 kkk
# 请将kkk目录下的所有文件/目录的所在组修改成bandit
[root@localhost fox]# ll
总用量 4
-rw-r--r--. 1 tom bandit     0 811 23:25 abc.txt
drwxr-xr-x. 2 tom monster 4096 811 23:32 kkk
[root@localhost fox]# ll kkk
总用量 0
-rw-r--r--. 1 tom monster 0 811 23:32 abcd.txt
[root@localhost fox]# chgrp -R bandit kkk/
[root@localhost fox]# ll
总用量 4
-rw-r--r--. 1 tom bandit    0 811 23:25 abc.txt
drwxr-xr-x. 2 tom bandit 4096 811 23:32 kkk
[root@localhost fox]# ll kkk
总用量 0
-rw-r--r--. 1 tom bandit 0 811 23:32 abcd.txt

最佳实践:警察土匪游戏

police,bandit

jack,jerry:警察(police)

xh,xq:土匪(bandit)

# 1. 创建组
[root@localhost home]# groupadd police
[root@localhost home]# groupadd bandit
# 2. 创建用户
[root@localhost home]# useradd -g police jack
[root@localhost home]# useradd -g police jerry
[root@localhost home]# useradd -g bandit xh
[root@localhost home]# useradd -g bandit xq
# 3. jack创建文件,自己可以读写,本组人可以读,其他组没有任何权限
[root@localhost jack]# su jack
[jack@localhost ~]$ cd /home/jack/
[jack@localhost ~]$ ll
总用量 0
[jack@localhost ~]$ vim abc.txt
[jack@localhost ~]$ ll
总用量 4
-rw-r--r--. 1 jack police 17 812 23:23 abc.txt
[jack@localhost ~]$ chmod u=rw,g=r,o=- abc.txt 
[jack@localhost ~]$ ll
总用量 4
-rw-r-----. 1 jack police 17 812 23:23 abc.txt
# 4. jack修改文件,让其他组人可以读,本组人可以写
[jack@localhost ~]$ ll
总用量 4
-rw-r-----. 1 jack police 17 812 23:23 abc.txt
[jack@localhost ~]$ chmod g=rw,o=r abc.txt 
[jack@localhost ~]$ ll
总用量 4
-rw-rw-r--. 1 jack police 17 812 23:23 abc.txt
# 5. xh投靠警察,看看是否可以读写
[root@localhost jack]# usermod -g police xh
[root@localhost jack]# su xh
[xh@localhost jack]$ ll
总用量 4
-rw-rw-r--. 1 jack police 17 812 23:23 abc.txt
[xh@localhost jack]$ vim abc.txt 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值