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
- U(the user who owns it)
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 x | r w - | r - - |
d | r w - | r - x | r - 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的权限