一、基本权限UGO
权限对象:
属主 ---> U ----> r w x
属组 ---> G ----> r w x
其他人 ---> O ----> r w x
基本权限类型:
读(read):r ---->4
写(write):w ---->2
执行(exec):x ---->1
1.1 设置权限
chown:改变文件或目录的所属主以及所属组
chmod:为文件或目录设置访问权限
1.1.1 更改文件的属主(拥有者)、属组 (所属组) chown:
chown alice.hr file1.txt #修改属主、属组
chown tom file1.txt #修改属主
chown .it file1.txt #只改属组
chown -R alice.hr dir1 #递归修改---针对目录
1.1.2 更改权限
使用符号
chmod u+x file1.txt #属主增加执行
chmod a=rwx file1.txt #所有人等于读写执行
chmod a=- file1.txt #所有人都没有权限
chmod ug=rw,o=r file1.txt #属主属组等于读写,其他人只读
使用数字
chmod 644 file1.txt
ll file1.txt
-rw-r--r--. 1 tom it 0 Nov 1 15:30 file1.txt
chmod file1.txt
ll
-rwxr-xr-x 1 root root 0 Jul 23 22:40 file1.txt
chmod 521 file1.txt
ll
-r-x-w---x 1 root root 0 Jul 23 22:40 file1.txt
二、高级权限
2.1、高级权限的类型
suid ==== 4 提权 (只对二进制命令文件生效,其他不管用)
sgid ==== 2 继承属组权限 (只能对目录设置)
sticky == 1 (t权限) 权限控制
2.2、设置特殊权限
a、字符---语法:
chmod u+s file 提权
chmod g+s dir 只能对目录设置
chmod o+t dir 即使有删除权限,也不能删除
b、数字
chmod 4777 file
chmod 2770 dir
chmod 1770 dir
案例:
suid 普通用户通过suid提权 <针对文件>
在进程文件(二进制,可执行的命令文件)上增加suid权限
[root@linux-server ~]# chmod u+s /usr/bin/cat
[root@linux-server ~]# chmod u+s /usr/bin/rm
[root@linux-server ~]# su - alice
Last login: Wed Nov 6 17:40:40 CST 2019 on pts/0
[alice@linux-server ~]$ cat /root/file1.txt
123
[alice@linux-server ~]$ rm -rf /root/file1.txt
SET UID:
那么这个特殊权限的特殊性的作用是什么呢?
1、SUID权限仅对命令文件(二进制文件)有效;
2、执行者将具有该程序拥有者(owner)的权限。
2.3、取消权限
[root@linux-server ~]# ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62864 Nov 6 2016 /usr/bin/rm
此时一旦给rm加上suid权限之后,普通用户相当于root用户。(即提权)
[root@linux-server ~]# chmod u-s /usr/bin/rm #取消提权
2.4、目前给普通用户提权的两种手段:
suid: 基本针对所有用户,任何用户在执行有suid权限的程序时(例如/usr/bin/rm),都是以root身份在执行。
sudo: 有针对性,例如针对某个用户以能够以root的身份执行某些命令。