目录
一:基本权限与归属
权限:访问权限
-读取:允许查看内容—read
-写入:允许修改内容—write
-可执行:允许运行或者切换—excute
归属:归属关系
-所有者(属主):拥有此文件/目录的用户—user
-所属组(属组):拥有此文件的组—group
-其他用户:除所有者、所属组之外的用户—other
1:解析文件/目录权限
执行 ls -l .......查看
ls -l /etc/wenjian
-rw-r--r--. 1 root root 0 12月16 10:08 a1
类型 权限位 硬连接数 所属者 所属组 大小 最后修改时间 文件名
以-开头:文本文件
以d开头:目录
以l开头:快捷方式
所属者 所属组 其他
类型 User Group Other
- rw- r-- r--
d rwx r-x r-x
l rwx rwx rwx
-权限位的8进制数表示
r , w , x 分别对应 4 , 2 ,1 。
ls -l /etc/passwd /boot/
2:权限管理
chmod 基本权限管理
格式:chmod [ugoa] [+-=] [rwx] 文件...
例子:
使用字符权限形式
chmod g+w,o+w /etc/wenjian/b1
使用数字权限形式
chmod 766 /etc/wenjian/b1
常用命令选项:-R //递归修改权限(目录本身以及目录下所有)
chmod -R 777 /opt/aa/bb/cc 只修改的是目录cc
chmod -R 777 /opt #目录/opt 及目录下的所有
权限没有继承属性
对于目录:
r读取权限:查看目录内容
w写入权限:能够创建、删除、修改等目录的内容
x 执行权限:能够cd切换到此目录下
3:调整umask设置,提高安全性
新建文件/目录的默认权限
—一般文件默认均不给x执行权限
—其他取决于umask(权限掩码)设置
—新建目录默认权限为755
—新建文件默认权限为644
umask 默认0022 777-022=755
umask 0027 //去除所有默认的other权限
umask -S //查看当前用户创建的文件的权限
[root@localhost ~]# umask
0022
[root@localhost ~]# umask 007 #777-007=770 rwxrwx---
[root@localhost ~]# umask
0007
[root@localhost ~]# mkdir /opt/abc03
[root@localhost ~]# ls -ld /opt/abc03
drwxrwx---. 2 root root 6 2月 7 16:19 /opt/abc03
4:新建目录时更改权限
mkdir -m 555 /etc/wenjian/mulu2
5.归属控制
(1)、设置归属关系
chown命令:
chown 属主 文件路径......
chown 属主 : 属组 文件路径......
chown :属组 文件路径...... = = chgrp 所属组 路径....
常用的命令选项:
-R:递归修改归属关系
6、Linux中判断用户具备的权限:
- 查看用户,对于该数据所处的身份,顺序 所有者 > 所属组 > 其他人 ,原则是匹配及停止
- 查看相应身份的权限位 rwx rwx rwx
二、附加权限
概述
特殊权限的作用:
—叠加于权限位的u , g , o 分组之上
—用来传递程序执行身份、限制目录写入权
特殊权限的分类:
1.Set UID(了解)
—占用属主(User)的 x 位
—显示为 s(有) 或 S(没有),取决于属主是否有 x 权限
—仅对可执行的程序有意义
—当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限
[root@localhost ~]# /usr/bin/mkdir /opt/abc01
[root@localhost ~]# ls /opt/
[root@localhost ~]# /usr/bin/hahadir /opt/abc02
[root@localhost ~]# ls /opt
abc01 abc02 ken rh
[root@localhost ~]# chmod u+s /usr/bin/hahadir
[root@localhost ~]# ls -l /usr/bin/hahadir
-rwsr-xr-x. 1 root root 79760 3月 9 10:22 /usr/bin/hahadir
[root@localhost ~]# su - lisi
上一次登录:三 3月 9 09:15:38 CST 2022pts/0 上
[lisi@localhost ~]$ /usr/bin/mkdir zs01
[lisi@localhost ~]$ ls -l
drwxrwxr-x. 2 lisi lisi 6 3月 9 10:24 zs01
[lisi@localhost ~]$ /usr/bin/hahadir zs02
[lisi@localhost ~]$ ls -l
drwxrwxr-x. 2 lisi lisi 6 3月 9 10:24 zs01
drwxrwxr-x. 2 root lisi 6 3月 9 10:25 zs02
[lisi@localhost ~]$
2.Set GID权限(了解)
—占用属组(Group)的 x 位
—显示为 s(有) 或 S(没有),取决于属组是否有 x 权限
—对目录有效
—在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份
案例:
[root@localhost ~]# mkdir /nsd18
[root@localhost ~]# groupadd tmooc
[root@localhost ~]# chown :tmooc /nsd18
[root@localhost ~]# mkdir /nsd18/test01 #赋予SGID特殊权限之前
[root@localhost ~]# ls -ld /nsd18/test01
drwxr-xr-x. 2 root root 6 3月 9 09:45 /nsd18/test01
[root@localhost ~]# chmod g+s /nsd18 #赋予SGID特殊权限
[root@localhost ~]# ls -ld /nsd18
drwxr-sr-x. 3 root tmooc 20 3月 9 09:45 /nsd18
[root@localhost ~]# mkdir /nsd18/test02 #赋予SGID特殊权限之后
[root@localhost ~]# ls -ld /nsd18/test02
drwxr-sr-x. 2 root tmooc 6 3月 9 09:46 /nsd18/test02
3.Sticky Bit
- 粘滞位,Sticky Bit 权限
- 占用其他人(Other)的 x 位
- 显示为 t (有)或 T(没有),取决于其他人是否有 x 权限
- 适用于目录,用来限制用户滥用写入权
- 在设置了t权限的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档
[root@localhost ~]# mkdir /home/public
[root@localhost ~]# chmod 777 /home/public
[root@localhost ~]# ls -ld /home/public
[root@localhost ~]# chmod o+t /home/public
[root@localhost ~]# ls -ld /home/public
[root@localhost ~]# su - lisi
[lisi@localhost ~]$ cd /home/public/
[lisi@localhost public]$ touch lisi.txt
[root@localhost ~]# su - dc
上一次登录:二 3月 8 16:53:35 CST 2022pts/0 上
[dc@localhost ~]$ touch /home/public/dc.txt
[dc@localhost ~]$ rm -rf /home/public/lisi.txt
rm: 无法删除"/home/public/lisi.txt": 不允许的操作
三、ACL策略管理
1、概述
—acl策略的作用
文档归属的局限性:
任何人之属于三种角色:属主、属组、其他人
无法实现更精细的控制
acl访问策略:
能够对个别用户、个别组设置独立的权限
大多数挂载的EXT3/4 、 XFS 文件系统默认已支持
2、设置ACL权限
定义ACL控制策略
setfacl命令:
格式:setfacl [选项] u:用户名:权限 文件....
setfacl [选项] g:组名:权限 文件...
常见命令选项:
-m : 定义一条ACL策略
-x : 清除指定的ACL策略
-b : 清除所有已设置的ACL策略
-R : 递归设置ACL策略
--- getfacl /root //查看acl策略
]# mkdir /nsd
]# setfacl -m u:dc:rx /nsd #单独赋予dc权限
]# getfacl /nsd //查看acl策略
]# setfacl -x u:dc /nsd #删除指定用户ACL
]# setfacl -b /nsd #清除目录所有ACL策略
]# setfacl -Rm u:dc:rx /opt/nsd #递归设置ACL策略
ACL策略-黑名单的使用(单独拒绝某些用户)
]# setfacl -m u:lisi:--- /home/public/
]# getfacl /home/public/
综合题:让用户lisi可以读取/etc/shadow
1、以所属主身份
chown lisi /etc/shadow
chmod u+r /etc/shadow
2、以所属组身份
chown :lisi /etc/shadow
chmod g+r /etc/shadow
3、以其他人身份
chmod o+r /etc/shadow
4、ACL策略
setfacl -m u:lisi:r /etc/shadow