Linux权限详解_08

1、Linux权限介绍

1.1、权限概述

  • 什么是权限

    权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权力。

  • 计算机资源分为两部分

    • 硬件资源 硬盘、cpu、内存、网卡等物理硬件资源

    • 软件资源

      软件:操作系统(特殊的软件)、应用程序。只要不启动,这些软件就是一堆静态的文件,并且静静的躺在我们计
      算机的磁盘中。

      软件资源:Linux系统中,一切皆文件,所以这里的软件资源就是文件资源。

  • 文件资源所拥有的相关权限,即文件权限。

1.2、权限设置的目的

文件权限设置的目的:是想让某个用户(Linux操作系统中的用户)有权利操作文件

1.3文件权限的分类

  • 普通权限

    用户正常情况去操作所具有的权限

  • 高级权限

    用户对某个文件操作有特俗需求,而普通权限不能满足,需要给文件设置高级权限

  • 默认权限

    用户在系统中创建一个文件,该文件默认都会有一个权限,该权限是默认有的

    注意:权限设置在文件上的,而不是用户;设置权限目的是让相应的人(用户)去操作相应的文件

2、普通权限

2.1、理解普通权限rwx含义

  • 读权限 r(read)

    • 针对目录

      一个目录拥有r权限,说明可以查看该目录里的内容(ls命令列出)

    • 针对普通文件

      一个普通文件拥有r权限,说明可以查看该文件的内容

    • 读权限r用数字表示是4

  • 写权限w(write)

    • 针对目录

      一个目录拥有w权限,说明可以在该目录里创建、删除、重命名等操作(mkdir/touch/mv/rm等)

    • 针对普通文件

      一个普通文件拥有w权限,说明可以修改该文件的内容(vi/vim编辑器编辑文件)

    • 写权限w用数字表示是2

  • 执行权限x(execute)

    • 针对目录

      一个目录拥有x权限,说明可以进入或切换到该目录里(cd命令)

    • 针对普通文件

      一个普通文件拥有x权限,说明可以执行该文件(一般程序文件、脚本文件、命令都需要执行权限)

    • 执行权限x(execute)用数字表示是1

  • 没有权限是横杠-

    • 没有任何权限用横杠-表示,用数字表示是0

2.2、理解UGO的含义

  • UGO指的是什么

    UGO,指的是用户身份,每个字母代表不同的用户身份。

    • U(the user who owns it)
      文件的拥有者(owner)或者创建者
    • G(other users in the file’s group)
      在文件的所属组(默认是创建文件的用户的主组)里的用户
    • O(other users not in the file’s group)
      既不是文件的创建者,也不在文件属组里的用户,称为其他人

    注意:

    ​ 除了上面ugo以外,还有一个字母a(all users),表示所有用户,包含ugo

2.3、判断用户对文件的权限

查看文件详细信息,包含权限信息
[root@tedu ~]# ls -l
总用量 16
-rw-------. 1 root root 1685 9月  29 19:21 anaconda-ks.cfg
-rw-r--r--  1 root root    7 3月  10 15:36 hebing.txt
-rw-r--r--. 1 root root 1733 9月  29 19:22 initial-setup-ks.cfg
-rw-r--r--  1 root root 2290 3月  11 21:55 passwd
-rw-r--r--  1 root root    0 12月 16 09:15 xiaoming.txt
 [root@jw ~]# ls -ld /etc/resolv.conf /usr/src/          #-d是目录本身的详细熟悉    
 (看目录内文件的详细熟悉直接用l)    
 -rw-r--r--. 1 root root 65 2月  26 07:35 /etc/resolv.conf    
 drwxr-xr-x. 4 root root 34 2月  15 18:55 /usr/src/    
 权限位 硬连接数    属主  属组  大小  最后修改时间  文件/目录名称    
 [root@jw ~]# ls -l /etc/rc.local     lrwxrwxrwx. 1 root root 13 2月  15 18:56 /etc/rc.local -> rc.d/rc.local    
 第一个root是目录所有者root用户    
 第二个root是所属组root组(基本组)    
 (排序、这个排序、这块永远都是rwx读 写 执行、如果没有其他的权限那么及时-,没三个一组)
类型User(属主)Group(属组)Other
-r w xr w -r - -
dr w -r - xr - x

-:(第一个-代表是一个文本文件)

d:代表是一个目录

l:代表是一个快捷方式

r:可读

w:可写

x:可执行

[root@jw ~]# ls -ld /etc/    
 -xr-x. 137 root root 8192 2月  26 07:35 /etc/  
[root@jw ~]# ls -l /etc/passwd    
-rw-r--r--. 1 root root 2141 2月  21 13:23 /etc/passwd
[root@jw ~]# ls -l /etc/shadow    
----------. 1 root root 1222 2月  21 13:23 /etc/shadow    
[root@jw ~]# ls -ld /home/tedu/    
drwx------. 16 tedu tedu 4096 2月  22 16:03 /home/tedu/    
[root@jw ~]# ls -ld /opt/    
drwxr-xr-x. 3 root root 16 2月  15 18:58 /opt/    
[root@jw ~]# ls -ld /tmp/    
drwxrwxrwt. 28 root root 4096 2月  27 15:40 /tmp/    
[root@jw ~]# ls -ld /root/    
dr-xr-x---. 24 root root 4096 2月  26 11:17 /root/

3、权限设置

3.1、chmod

使用chmod命令

使用chmod命令
chmod -[R] 归属关系 + - = 权限类别 文档

(归属关系u代表用户、g代表组、o代表其他用户)

+: 增加权限

-: 减少权限

= : 重新赋予权限

[root@jw ~]# cd ~ 
[root@jw ~]# mkdir student 
[root@jw ~]# ls -ld student/ 
drwxr-xr-x. 2 root root 6 2月  27 15:51 student/ 
[root@jw ~]# chmod g+w student/         #给组用户加上w的权限
[root@jw ~]# ls -ld student/ 
drwxrwxr-x. 2 root root 6 2月  27 16:05 student/ 
[root@jw ~]# chmod u=rwx,g=rwx,o=rwx student/       #给用户、组、和其他加上所有权限 
[root@jw ~]# ls -ld student/ 
drwxrwxrwx. 2 root root 6 2月  27 16:08 student/ 
[root@jw ~]# chmod u=rw,g=rw,o=r student/           #给用户改成读写、组改成读写、其他 改成读 
[root@jw ~]# ls -ld student/ drw-rw-r--. 2 root root 6 2月  27 16:08 student/ 
[root@jw ~]# 
[root@jw ~]# chmod ugo=rwx student/                 #给用户、组、和其他加上所有权限 
[root@jw ~]# ls -ld student/ drwxrwxrwx. 2 root root 6 2月  27 16:08 student/

递归修改目录

[root@jw ~]# mkdir -p a/b/c/d/e/f           #创建嵌套目录 
[root@jw ~]# chmod -R o=--- a               #给目录下面所有的文件的其他用户的权限都改成 无

3.2、判断用户具备的权限

[root@jw ~]# id tedu 
uid=1000(tedu) gid=1000(tedu)=1000(tedu) 
[root@jw ~]# ls -l /etc/passwd 
-rw-r--r--. 1 root root 2141 2月  21 13:23 /etc/passwd

2.查看相应的身份的权限位的表示

(对于passwd文件来说、tedu属于其他人的身份、其他只有读的权限)

 [root@jw ~]# su - tedu    
 上一次登录:五 2月 21 13:00:35 CST 2020pts/0 上      
 [tedu@jw ~]$ cat /etc/passwd                    #可以查看    
 [tedu@jw ~]$ vim /etc/passwd                    #无法修改    
 [tedu@jw ~]$ exit
  [root@jw ~]# mkdir /code                        #在根目录下创建code       
  [root@jw ~]# echo asdf > /code/f.txt            #创建文本文件并编辑        
  [root@jw ~]# ls -l /code/f.txt                  #查看属性        
  -rw-r--r--. 1 root root 5 2月  29 10:41 /code/f.txt        
  [root@jw ~]# id tedu        
  uid=1000(tedu) gid=1000(tedu)=1000(tedu)[root@jw ~]# id root       
  uid=0(root) gid=0(root)=0(root)        
  [root@jw ~]#              
[root@jw ~]# su - tedu        
上一次登录:六 2月 29 10:53:51 CST 2020pts/0 上  
[tedu@jw ~]$ ls       
[tedu@jw ~]$ cat /code/f.txt        
asdf        
[tedu@jw ~]$ echo eawaqr >> /code/f.txt    
-bash: /code/f.txt: 权限不够
-bash: /code/f.txt: Permission denied      
[tedu@jw ~]$ vim /code/f.txt       
[tedu@jw ~]$ cat /code/f.txt        
asdf        
[tedu@jw ~]$ chmod o+w /code/f.txt        
chmod: 更改"/code/f.txt" 的权限: 不允许的操作        chmod:changing permissions of '/code/f.txt' of Operation not permitted

 3.针对用户目录的权限
      
[tedu@jw ~]$ exit        
登出    
[root@jw ~]# ls -l /code/f.txt    
-rw-r--r--. 1 root root 5 2月  29 10:55 /code/f.txt     
[root@jw ~]# chmod o+w /code/f.txt          #加上用户权限    
[root@jw ~]# ls -l /code/f.txt                 
-rw-r--rw-. 1 root root 5 2月  29 10:55 /code/f.txt    
[root@jw ~]# su - tedu    
上一次登录:六 2月 29 10:55:33 CST 2020pts/0 上    
[tedu@jw ~]$ echo eawaqr >> /code/f.txt        
[tedu@jw ~]$ cat /code/f.txt        
asdf 
eawaqr        
[tedu@jw ~]$ vim /code/f.txt        
[tedu@jw ~]$ cat /code/f.txt        
asdf        
eawaqr      今夜星光闪闪,我爱你的心满满      
```
[tedu@jw ~]$ exit        
登出        
[root@jw ~]# chmod o=w /code/f.txt         
[root@jw ~]# ls -l /code/f.txt         
-rw-r---w-. 1 root root 55 2月  29 12:03 /code/f.txt        
[root@jw ~]# su - tedu        
[tedu@jw ~]$ cat /code/f.txt         
cat: /code/f.txt: 权限不够        
[tedu@jw ~]$ vim /code/f.txt         
[tedu@jw ~]$ ls -l /code/f.txt         
[tedu@jw ~]$ vim /code/f.txt         
[tedu@jw ~]$ exit        
登出        
[root@jw ~]# cat /code/f.txt         
dddddddddddddddddddddddddddddddddd        
[root@jw ~]# su - tedu        
[tedu@jw ~]# echo aaaaaaaaaaaaaa >> /code/f.txt         
[tedu@jw ~]$ exit        
[root@jw ~]# cat /code/f.txt 
  • 针对用户目录的权限

     [root@jw ~]# ls -ld /code/                          #查看目录权限    
     #针对目录而言有执行权限x、才能用cd命令进入目录    
     drwxr-xr-x. 2 root root 19 2月  29 10:55 /code/         
     [root@jw ~]# su - tedu    
     上一次登录:六 2月 29 12:09:37 CST 2020pts/0 上
     [tedu@jw ~]$ cd /code/                              #执行权限
      [tedu@jw code]$ cd ..    
      [tedu@jw /]$ exit    
      登出    
      [root@jw ~]# chmod o-x /code                        #去掉执行权限
      [root@jw ~]# ls -ld /code/                          #查看目录权限    
      drwxr-xr--. 2 root root 19 2月  29 10:55 /code/    
      [root@jw ~]# su - tedu    
      上一次登录:六 2月 29 12:27:50 CST 2020pts/0 上    
      [tedu@jw ~]$ cd /code/    
      -bash: cd: /code/: 权限不够        
      [tedu@jw ~]$ ls /code/    
      ls: 无法访问/code/f.txt: 权限不够    
      f.txt   
      [tedu@jw ~]$ ls -l /code/    
      ls: 无法访问/code/f.txt: 权限不够    
      总用量 0    
      -????????? ? ? ? ?            ? f.txt    
      [tedu@jw ~]$ exit    
      登出    
      [root@jw ~]# chmod o+x /code    
      [root@jw ~]# ls -ld /code    
      drwxr-xr-x. 2 root root 19 2月  29 10:55 /code      
      
      #去掉r权限    
      [root@jw ~]# chmod o-r /code/    
      [root@jw ~]# ls -ld /code/    
      drwxr-x--x. 2 root root 19 2月  29 10:55 /code/    
      [tedu@jw ~]$ cd /code/    
      [tedu@jw code]$ ls    
      ls: 无法打开目录.: 权限不够
      [tedu@jw code]$ mkdir a    
      mkdir: 无法创建目录"a": 权限不够    
      [tedu@jw code]$ touch n.txt    
      touch: 无法创建"n.txt": 权限不够    
      [tedu@jw code]$ exit     
      登出    
      [root@jw ~]# chmod o+r,o+w /code/    
      [root@jw ~]# ls -ld /code/    
      drwxr-xrwx. 2 root root 19 2月  29 10:55 /code/    
      [root@jw ~]# su - tedu    
      上一次登录:六 2月 29 12:47:24 CST 2020pts/0 上    
      [tedu@jw ~]$ cd /code/    
      [tedu@jw code]$ ls    f.txt    
      [tedu@jw code]$ touch a.txt    
      [tedu@jw code]$ mkdir b    
      [tedu@jw code]$ ls    
       #对于目录来说    
       w权限能够执行rm/mv/mkdir/touch/等修改目录内容的操作    
       r可以ls查看目录内容     
       x可以用cd命令切换
       
       
       我们可以修改这个code目录的没名字吗?    
       [tedu@jw code]$ mv /code/ /aaa    
       mv: 无法将"/code/" 移动至"/aaa": 权限不够        
       [tedu@jw code]$ exit    
       登出    
       [root@jw ~]# ls -ld /    
       dr-xr-xr-x. 18 root root 236 2月  29 10:47 /    
       #给根目录加上w的权限、那么下级所有的目录都可以被其他用户修改    
       [root@jw ~]# chmod o+w /    
       [root@jw ~]# ls -ld /    
       dr-xr-xrwx. 18 root root 236 2月  29 10:47 /    
       [root@jw ~]# su - tedu    
       上一次登录:六 2月 29 12:55:49 CST 2020pts/0 上    
       [tedu@jw ~]$ mv /code/ /codefiel                    #改名    
       [tedu@jw ~]$ ls /    
       bin   codefiel  etc   lib    media  opt   root  sbin  sys  usr    
       boot  dev       home  lib64  mnt    proc  run   srv   tmp  var
       [tedu@jw ~]$ exit    
       登出    
       [root@jw ~]# chmod o-w /    
       [root@jw ~]# ls -ld /    
       dr-xr-xr-x. 18 root root 240 2月  29 13:15 /
    

4、归属关系

4.1、chown命令

使用chown命令
chown [-R] 属主 文档…

chown [-R] :属组 文档…
chown [-R] 属主:属组 文档…

-R : 代表递归、可以递归修改

 [tedu@jw ~]$ exit    
 登出    
 [root@jw ~]# mkdir /code1    
 [root@jw ~]# ls -ld /code1    
 drwxr-xr-x. 2 root root 6 2月  29 13:58 /code1
 [root@jw ~]# groupadd student                       #创建组
 #修改属主、和属组    
 [root@jw ~]# chown tedu:student /code1    
 [root@jw ~]# ls -ld /code1    
 drwxr-xr-x. 2 tedu student 6 2月  29 13:58 /code1    
 [root@jw ~]#         #只改属主    
 [root@jw ~]# chown root /code1    
 [root@jw ~]# ls -ld /code1    
 drwxr-xr-x. 2 root student 6 2月  29 13:58 /code1        #只改属组    
 [root@jw ~]# chown :root /code1    
 [root@jw ~]# ls -ld /code1    
 drwxr-xr-x. 2 root root 6 2月  29 13:58 /code1

练习

[root@jw ~]# mkdir /code2 
[root@jw ~]# echo hahaha > /code/c.txt 
bash: /code/c.txt: 没有那个文件或目录 
[root@jw ~]# 
[root@jw ~]# echo hahaha > /code2/c.txt 
[root@jw ~]# ls -ld /code2 
drwxr-xr-x. 2 root root 19 2月  29 14:27 /code2 
[root@jw ~]# 

#问题1 
我们的tedu用户能否在code2目录下面创建文件?    
答案:不能因为对于code2来说、tedu是其他人身份、而其他人没有w的权限所以创建不了文件和文件夹    
[root@jw ~]# su - tedu    
上一次登录:六 2月 29 13:43:06 CST 2020pts/0 上    
[tedu@jw ~]$ cd /code2    
[tedu@jw code2]$ touch g.txt    
touch: 无法创建"g.txt": 权限不够    
[tedu@jw code2]$ exit     
登出

 #修改权限    
 [root@jw ~]# chown tedu:student /code2/    
 [root@jw ~]# ls -ld /code2    
 drwxr-xr-x. 2 tedu student 19 2月  29 14:27 /code2 
 #问题2 
 tedu现在能不能再code2下面创建文件或则目录了?    
 能、因为现在tedu变成code2的拥有着、拥有着的权限是都具备的
 [root@jw ~]# su - tedu    
 上一次登录:六 2月 29 14:31:07 CST 2020pts/0 上    
 [tedu@jw ~]$ cd /code2    
 [tedu@jw ~]$ exit    
 登出    
 [tedu@jw code2]$ touch b.txt 
 #需求3让其他用户没有任何权限访问/code2    
 [root@jw ~]# chmod o=--- /code2   
 
 #需求4只有laowang这个用户可以访问其他用户都无法访问这个文件
 [root@jw ~]# useradd laowang            #添加用户laowang
 [root@jw ~]# useradd xiaowang    
 #我希望这个只有laowang这个code有rx权限其他人无法访问
 [root@jw ~]# id laowang    
 [root@jw ~]# id xiaowang    
 [root@jw ~]# ls -ld /code2    
 drwxr-x---. 2 tedu student 32 2月  29 14:36 /code2    
 #我们把laowang这个用户添加到student组里面    
 [root@jw ~]# gpasswd -a laowang student             
 正在将用户“laowang”加入到“student”组中    
 [root@jw ~]# id laowang    
 uid=1002(laowang) gid=1003(laowang)=1003(laowang),1002(student)        
 [laowang@jw code2]$ exit    
 [root@jw ~]# su - laowang    
 上一次登录:六 2月 29 16:56:34 CST 2020pts/1 上 
 [laowang@jw ~]$ cd /code2    
 [laowang@jw code2]$                                 #配置成功
 [root@jw ~]# chmod u=--- /code2    
 [root@jw ~]# ls -ld /code    
 ls: 无法访问/code: 没有那个文件或目录    
 [root@jw ~]# ls -ld /code2    
 d---r-x---. 2 tedu student 32 2月  29 14:36 /code2    
 [root@jw ~]# getent group student
 student:x:1002:laowang    
 全部完成        
 
 #思考练习    
 [root@jw code2]# gpasswd -a tedu student    
 正在将用户“tedu”加入到“student”组中    
 [root@jw code2]# id tedu    
 uid=1000(tedu) gid=1000(tedu)=1000(tedu),1002(student) 
 问:tedu可以访问/code吗?        
 #所有者>所属组>其他人    #判断身份是按照这个顺序来的    
 有一个非常重要的规制:匹配及停止 

利用root用户新建code4目录,并进一步完成下列操作

1.将所有者设置为gelin01,将属组设置为student组

[root@jw code2]# mkdir /code4 
[root@jw code2]# useradd gelin01 
[root@jw code2]# cat /etc/group                 #查看组的命令 
[root@jw code2]# chown gelin01:student /code4 
[root@jw code2]# ls -ld /code4 
drwxr-xr-x. 2 gelin01 student 6 2月  29 19:34 /code4

2.将用户gelin01对此目录居有所有的rwx
除属主与组以外的人、对 此目录无任何权限

[root@jw code2]# chmod o=--- /code4 
[root@jw code2]# ls -ld /code4 
drwxr-x---. 2 gelin01 student 6 2月  29 19:34 /code4 [root@jw code2]# 

3.创建用户gelin02、使用户gelin02能进入、查看此目录内容

[root@jw code2]# useradd gelin02 
[root@jw code2]# gpasswd -a gelin02 student 
正在将用户“gelin02”加入到“student”组中 
[root@jw code2]# id gelin02 
uid=1005(gelin02) gid=1006(gelin02)=1006(gelin02),1002(student)

4.将gelin01加入到student组、将code4的目录权限设置为rw-r-x–

在测试gelin01用户是否能进入到此目录

[root@jw code2]# gpasswd -a gelin01 student 
正在将用户“gelin01”加入到“student”组中 
[root@jw code2]# id gelin01 
uid=1004(gelin01) gid=1005(gelin01)=1005(gelin01),1002(student) 
[root@jw code2]# gpasswd -a gelin01 student 
正在将用户“gelin01”加入到“student”组中 
[root@jw code2]# chmod u=rw,g=rx /code4 
[root@jw code2]# ls -ld /code4 
drw-r-x---. 2 gelin01 student 6 2月  29 19:34 /code4

5.创建普通用户gelin03、使普通用户gelin03可以读取/etc/shadow内容,您有几种办法?

1.利用其它人

[root@jw ~]# useradd gelin03  

​ [root@jw ~]# chmod o+r /etc/shadow
2.利用所属组

​ [root@jw ~]# chown :gelin03 /etc/shadow

[root@jw ~]# chmod g+r /etc/shadow 3.利用所有者

3、利用所有者

​ [root@jw ~]# chown gelin03 /etc/shadow

​ [root@jw ~]# chmod u+r /etc/shadow

4.2、附加权限(特俗权限)

Set GID
附加在属组的x位上

属组的权限标识会变成s

适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属性

[root@jw code2]# ls -ld /code4    
drw-r-x---. 2 gelin01 student 6 2月  29 19:34 /code4
[root@jw code2]# chmod g+s /code4    
[root@jw code2]# ls -ld /code4    
drw-r-s---. 2 gelin01 student 6 2月  29 19:34 /code4
(我们可以看见s已经被覆盖了、我怎么知道原来权限里面 有没有x、有办法的) 
[root@jw code2]# chmod g-s /code4    
[root@jw code2]# ls -ld /code4    
drw-r-x---. 2 gelin01 student 6 2月  29 19:34 /code4
[root@jw code2]# chmod g-x /code4    
[root@jw code2]# ls -ld /code4    
drw-r-----. 2 gelin01 student 6 2月  29 19:34 /code4    [root@jw code2]# chmod g+s /code4    
[root@jw code2]# ls -ld /code4    
#s代表原来有执行权限、S代表原来没有执行权限    
drw-r-S---. 2 gelin01 student 6 2月  29 19:34 /code4
[root@jw code2]# mkdir /code5    
[root@jw code2]# ls -ld /code5    
drwxr-xr-x. 2 root root 6 2月  29 20:26 /code5    
[root@jw code2]# chown :student /code5    
[root@jw code2]# ls -ld /code5    
drwxr-xr-x. 2 root student 6 2月  29 20:26 /code5    [root@jw code2]# cd /code5    
[root@jw code5]# mkdir a    
[root@jw code5]# ls -ld a    
drwxr-xr-x. 2 root root 6 2月  29 20:36 a        
	需求:        
		我们现在要求的是我们要code5这个目录下面所有创建的目录的属性都父目录一样    
[root@jw code5]# chmod g+s /code5/    
[root@jw code5]# ls -ld /code5    
drwxr-sr-x. 3 root student 15 2月  29 20:36 /code5
[root@jw code5]# mkdir /code5/b    
[root@jw code5]# ls -ld /code5/b    
drwxr-sr-x. 2 root student 6 2月  29 20:43 /code5/b
[root@jw code5]# mkdir /code5/b/f    
[root@jw code5]# ls -ld /code5/b/f    
drwxr-sr-x. 2 root student 6 2月  29 20:46 /code5/b/f
[root@jw code5]# mkdir /code5/a/c    
[root@jw code5]# ls -ld /code5/a/c/    
drwxr-xr-x. 2 root root 6 2月  29 20:44 /code5/a/c/
[root@jw code5]# touch /code5/n.txt    
[root@jw code5]#ls -l /code5/n.txt 
  • Set UID

    附加在属主的x位上

    -属主的权限标识会变为s

    -适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限

  • Sticky Bit

    附加在其他人的x位上

    其他人的权限 标识会变成t

    适用于开放w权限的目录,可以阻止用户滥用w写入权限(禁止操作别人的文档)

    (有一个目录默认就有t权限、那就/tmp)

 [root@jw code5]# ls -ld /tmp/    
 drwxrwxrwt. 15 root root 4096 3月   1 22:58 /tmp/    
 #在其他用户的x位上变成了t        
 [root@jw code5]# mkdir /home/public    
 [root@jw code5]# chmod ugo=rwx /home/public/            #赋予用户所有权限    
 [root@jw code5]# ls -ld /home/public/    
 drwxrwxrwx. 2 root root 6 3月   1 23:28 /home/public/
 [laowang@jw code2]$ cd /home/public/    
 [laowang@jw public]$ touch laowang.txt
 [xiaowang@jw ~]$ cd /home/public/    
 [xiaowang@jw public]$ touch xiaowang.txt        
 [tedu@jw ~]$ cd /home/public/    
 [tedu@jw public]$ touch tedu.txt    
 [tedu@jw public]$ ls -l    
 总用量 0    
 -rw-rw-r--. 1 laowang  laowang  0 3月   1 23:31 laowang.txt    
 -rw-rw-r--. 1 tedu     tedu     0 3月   1 23:30 tedu.txt
 -rw-rw-r--. 1 xiaowang xiaowang 0 3月   1 23:31 xiaowang.txt        
 [laowang@jw public]$ rm laowang.txt     
 [laowang@jw public]$ ls    
 tedu.txt  xiaowang.txt
 [laowang@jw public]$ 
 [laowang@jw public]$ rm tedu.txt     
 rm:是否删除有写保护的普通空文件 "tedu.txt"?y    
 [laowang@jw public]$ ls    
 xiaowang.txt        
 [laowang@jw code2]$ cd /home/public/
 
 [laowang@jw public]$ touch laowang.txt
 [tedu@jw ~]$ cd /home/public/    
 [tedu@jw public]$ touch tedu.txt    
 [tedu@jw public]$ ls -l    
 总用量 0    
 -rw-rw-r--. 1 laowang  laowang  0 3月   1 23:31 laowang.txt    
 -rw-rw-r--. 1 tedu     tedu     0 3月   1 23:30 tedu.txt
 -rw-rw-r--. 1 xiaowang xiaowang 0 3月   1 23:31 xiaowang.txt    
 [laowang@jw public]$ rm -rf tedu.txt laowang.txt
 [laowang@jw public]$ ls    
 xiaowang.txt
 [tedu@jw public]$ rm -rf xiaowang.txt        
 [xiaowang@jw public]$ rm -rf *
 
  [root@jw code5]# chmod o+t /home/public/                #设置t权限    
  [root@jw code5]# ls -ld /home/public/    
  drwxrwxrwt. 2 root root 6 3月   1 23:46 /home/public/
  [laowang@jw code2]$ cd /home/public/    
  [laowang@jw public]$ touch laowang.txt
  [xiaowang@jw ~]$ cd /home/public/    
  [xiaowang@jw public]$ touch xiaowang.txt        
  [tedu@jw ~]$ cd /home/public/    
  [tedu@jw public]$ touch tedu.txt    
  [tedu@jw public]$ ls -l    
  总用量 0    
  -rw-rw-r--. 1 laowang  laowang  0 3月   1 23:31 laowang.txt    
  -rw-rw-r--. 1 tedu     tedu     0 3月   1 23:30 tedu.txt
  -rw-rw-r--. 1 xiaowang xiaowang 0 3月   1 23:31 xiaowang.txt    
  #这个时候我们再去删除不了别人的文件、只能删除自己的
  • acl访问控制列表
    文档归属的局限性

    任何人只属于三种角色:属主、属组、其他人

    无法实现更精细的控制
    acl访问策略
    能够对个别用户、个别组设置独立权限

    大多数挂载的EXT3/4、XFS文件系统默认以支持

[root@jw ~]# mkdir /money 
[root@jw ~]# useradd lbn                                #创建老板娘账户 
[root@jw ~]# echo 100w > /money/rmb.txt 
[root@jw ~]# ls -ld /money/ drwxr-xr-x. 2 root root 21 3月   2 00:18 /money/ 
[root@jw ~]# chmod o=--- /money                         #去掉其他人的权限 
[root@jw ~]# ls -ld /money/ 
drwxr-x---. 2 root root 21 3月   2 00:18 /money/ 
[root@jw ~]# groupadd caiwu                             #创建caiwu组 
[root@jw ~]# chown :caiwu /money/ 
[root@jw ~]# ls -ld /money/                             #把money的所属组设为caiwu 
drwxr-x---. 2 root caiwu 21 3月   2 00:18 /money/ 
[root@jw ~]# chmod g+w /money/ 
[root@jw ~]# ls -ld /money/ 
drwxrwx---. 2 root caiwu 21 3月   2 00:18 /money/
 
  • 设置acl访问策略

    使用getfacl、setfacl命令

    -getfacl 文档 #查看acl

    -setfacl [-R] -m u:用户名:权限类别 文档 #给用户添加策略

    -setfacl [-R] -m g:组名权限类别 文档 #给组添加策略

    -setfacl [-R] -x u:用户名:文档 #删除指定用户的acl

    -setfacl [-R] -b 文档 #清空acl -R:递归 -m:修改 u:代表用户 g:代表组

    (一定要注意、这个u代表的不是所有者、g不是所有组)

[root@jw ~]# setfacl -m u:lbn:rx /money/        #设置acl
[root@jw ~]# ls -ld /money/    
drwxrwx---+ 2 root caiwu 21 3月   2 00:18 /money/        #原来位置的.变成了+号    
[root@jw ~]# getfacl /money/                            #查看权限    
getfacl: Removing leading '/' from absolute path names
# file: money/              
# owner: root           #所有者    
# group: caiwu          #所属组    
user::rwx               #所有者具备的权限    
user:lbn:r-x            #看这个lbn有没有这个权限、一定要看她有没有、单独的acl    
group::rwx              #所有组具备的权限    
mask::rwx               #权限掩码    
other::---              #其他人
#laowang和xiaowang都是看不了的    
#再把我们的tedu设置acl、要有rx的权限
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值