一、文件系統部分
- 普通文件(文本文件,二進制文件,壓縮文件,電影,圖片。。。)
d 目錄文件(藍色)
b 設備文件(塊設備)存儲設備硬盤,U盤 /dev/sda, /dev/sda1
c 設備文件(字符設備)打印機,終端 /dev/tty1
l 鏈接文件(淡藍色)
s 套接字文件
p 管道文件
二、文件權限部分
1、基本權限UGO
[root@localhost ~]# chmod 7777 file7(默認文件權限為644,無執行權限) [root@localhost ~]# ll -d /root/file7 -rwsrwsrwt. 1 root root 0 7月 23 08:28 /root/file7 [root@localhost tmp]# chmod a=rwx file1 //所有人等於讀寫執行
[root@localhost tmp]# chmod a=- file1 //所有人沒有權限
[root@localhost tmp]# chmod ug=rw,o=r file1 //屬主屬組等於讀寫,其他人只讀
[root@localhost tmp]# ll file1 //以長模式方式查看文件權限
-rw-rw-r-- 1 alice it 17 10-25 16:45 file1 //顯示的結果
[root@localhost tmp]# chmod a=rwx file1 //所有人等於讀寫執行
[root@localhost tmp]# chmod a=- file1 //所有人沒有權限
[root@localhost tmp]# chmod ug=rw,o=r file1 //屬主屬組等於讀寫,其他人只讀
[root@localhost tmp]# ll file1 //以長模式方式查看文件權限
-rw-rw-r-- 1 alice it 17 10-25 16:45 file1 //顯示的結果
- //表普通文件
rwx //讀、寫、執行(數字表示4、2、1)
a所有人,= 表覆蓋
s是此處含有x權限,當去除x權限則為S。
s分為suid和sgid,suid可以為普通用戶提權,sgid可以讓組屬性得以繼承。
如下:
[root@localhost ~]#chmod -x file7 [root@localhost ~]# ll -d /root/file7 -rwSrwSrwT. 1 root root 0 7月 23 08:28 /root/file7 [root@tianyun ~]# chmod u+s /usr/bin/cat [alice@tianyun ~]$ cat /root/file1.txt(沒有提權的普通用戶是不允許進入/root)
t類似s,有x權限時為小寫,當去除x權限則為T
t為特殊權限sticky,設置t后,即使是777權限的文件夾(root創),不同普通用戶在里面創的文件,互相之間不允許刪除他人所創文件。
2、基本權限 ACL
acl權限的理解:假如有一個test.txt文件,只有屬主和屬組有rwx權限,其他用戶沒權限。有一個用戶既不在該用戶屬組也不是屬主,想要訪問test.txt文件,就得通過acl權限
。即acl權限可以針對單個用戶。
設置:
[root@tianyun ~]# touch /home/test.txt [root@tianyun ~]# ll /home/test.txt -rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt [root@tianyun ~]# setfacl -m u:alice:rw /home/test.txt //增加用戶alice權限
[root@tianyun ~]# setfacl -m u:jack:- /home/test.txt //增加用戶jack權限
[root@tianyun ~]# setfacl -m o::rw /home/test.txt
查看:
[root@tianyun ~]# getfacl /home/test.txt//查看文件有哪些ACL權限。
如何刪除一條acl,如何刪除所有acl呢? [root@tianyun ~]# ll /home/test.txt [root@tianyun ~]# getfacl /home/test.txt -rw-rw-r--+ 1 root root 0 10-26 13:59 /home/test.txt(+表示有acl權限) [root@tianyun ~]# setfacl -m g:hr:r /home/test.txt [root@tianyun ~]# setfacl -x g:hr /home/test.txt //刪除組hr的acl權限
[root@tianyun ~]# setfacl -b /home/test.txt //刪除所有acl權限
[root@tianyun ~]# getfacl file1 |setfacl --set-file=- file2 //復制file1的ACL權限給file2
3、mask權限
acl權限中有個"mask"的選項,它就是ACL權限的最大權限,現在是rwx,當你設置某個用戶或組的ACL權限時,要跟mask的權限“相與”之后產生的權限才是該用戶的最終權限,也就是加入mask的最大權限是rx,但是你給st用戶設置的是rwx權限,此時st用戶它的權限只有rx的權限,因為與最大權限“相與”得出的結果就是rx。
4、特殊權限chattr:常用於鎖定某個文件,拒絕修改。
設置:
[root@tianyun ~]# man chattr [root@tianyun ~]# chattr +a file100 //只能追加
[root@tianyun ~]# chattr +i file200 //不能更改,重命名,刪除
[root@tianyun ~]# chattr +A file300 //不能更改訪問時間。
查看:
[root@tianyun ~]# lsattr file100 file200 file300 -----a-------e- file100 ----i--------e- file200 -------A-----e- file300
還原:
[root@tianyun ~]# chattr -a file100 [root@tianyun ~]# chattr -i file200 [root@tianyun ~]# chattr -A file300
注意:chattr設置文件屬性(權限),針對所有用戶,包括root。
三、sudo提權
1、root授予wang賬號權限 [root@node1 ~]# chmod 700 /var/log/messages [root@node1 ~]# ll /var/log/messages -rwx------ 1 root root 2145 Oct 7 03:41 /var/log/messages [root@node1 ~]# vim /etc/sudoers root ALL=(ALL) ALL wang 192.168.40.132=(root) /bin/cat /var/log/messages*,! /bin/cat /var/log/messages* * (注意cat的路徑,“,”和“!” !表示禁止) [root@node1 ~]# cd /etc/sudoers.d/ (檢查子配置文件,可能沖突) [root@node1 sudoers.d]# ls [root@node1 sudoers.d]# [root@node1 ~]#su - wang [wang@node1 ~]$ sudo cat /var/log/messages [sudo] password for wang: ......