Linux中一切皆文件!!
一、文件權限與歸屬
Linux中一切皆文件,但是每個文件的類型不盡相同,因此Linux系統使用了不同的字符類加以區分。
- -:普通文件
- d: 目錄文件
- l : 鏈接文件
- b:塊設備文件
- c: 字符設備文件
- p:管道文件
- Linux系統中,每個文件都有說是的所有者和所有組,並且規定了文件的所有者、所有組以及其他人對文件所擁有的權限
- Linux中關於文件權限,有(r、w、x)三個
- r : 讀(read)數字表示— 4
- w :寫(write) 數字表示— 2
- x :執行(execute)數字表示— 1
root@juzuodaliyun:/home/gw ll
total 280
drwxr-xr-x 26 gw gw 4096 Apr 12 12:51 ./
drwxr-xr-x 5 root root 4096 May 4 21:31 ../
drwxr-xr-x 23 gw gw 4096 Jul 31 2019 anaconda3/
-rw------- 1 gw gw 4787 Oct 26 2019 .bash_history
-rw-r--r-- 1 gw gw 220 Jul 19 2019 .bash_logout
-rw-r--r-- 1 gw gw 3884 Jul 24 2019 .bashrc
-rw-r--r-- 1 gw gw 3809 Jul 24 2019 .bashrc-anaconda3.bak
drwx------ 18 gw gw 4096 Apr 12 13:00 .cache/
……
分行,以第3行爲例子:drwxr-xr-x 23 gw gw 4096 Jul 31 2019 anaconda3/
- 第一個字母d表示文件類型(目錄文件)
- 2-4(rwx)表示文件的所有者擁有的權限(4+2+1=7)
- 5-7(r-x)表示和這個文件屬主所在同一個組的用戶所具有的權限(4+0+1=5)
- 8-10(r-x)表示其他用戶對這個目錄文件所擁有的權限(4+0+1=5)
- 數字26表示文件夾中含有的文件的數量(anaconda3包含26個文件)
- 第一個gw表示文件所屬用戶
- 第二個gw表示所屬組
- 其他的顯而易見了~
所以anaconda的權限數字表示法爲755。
1. 使用chown命令改變文件所屬
命令使用格式chown [參數] 所有者:所屬組
root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May 3 11:14 ./
drwxr-xr-x 5 root root 4096 May 5 19:44 ../
-rw-r--r-- 1 root root 48 May 3 23:02 a.txt
-rw-r--r-- 1 root root 19 Apr 28 22:23 b.txt
-rwxrwxrwx 1 root root 0 Apr 29 23:22 test.py*
# 更改a.txt的文件所有者
root@jiuzuodaliyun:/home/test/20200503 chown gw:gw a.txt
root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May 3 11:14 ./
drwxr-xr-x 5 root root 4096 May 5 19:44 ../
-rw-r--r-- 1 gw gw 48 May 3 23:02 a.txt
-rw-r--r-- 1 root root 19 Apr 28 22:23 b.txt
-rwxrwxrwx 1 root root 0 Apr 29 23:22 test.py*
2.使用chmod命令更改文件的權限
使用格式chmod [參數] 權限 文件或目錄名稱
root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May 3 11:14 ./
drwxr-xr-x 5 root root 4096 May 5 19:44 ../
-rw-r--r-- 1 root root 48 May 3 23:02 a.txt
-rw-r--r-- 1 root root 19 Apr 28 22:23 b.txt
-rw-r--r-- 1 root root 0 Apr 29 23:22 test.py
# 現在改變 test.py 的權限爲任何用戶都有rwx權限(rwxrwxrwx=777)
root@jiuzuodaliyun:/home/test/20200503 chmod 777 test.py
root@jiuzuodaliyun:/home/test/20200503 ll
total 16
drwxr-xr-x 2 root root 4096 May 3 11:14 ./
drwxr-xr-x 5 root root 4096 May 5 19:44 ../
-rw-r--r-- 1 root root 48 May 3 23:02 a.txt
-rw-r--r-- 1 root root 19 Apr 28 22:23 b.txt
-rwxrwxrwx 1 root root 0 Apr 29 23:22 test.py*
二、文件的隱藏屬性
Linux 中有些奇怪的文件,你登錄使用的用戶有足夠的權限,但是你不能刪除這個文件,或者你只能向某個特殊的日誌文件中添加記錄,但是無法改變記錄(阻止了黑客篡改記錄),這一類文件就是擁有了一些隱藏屬性,保障了Linux系統的安全性。
1. chattr 命令
chatter命令用於設置文件的隱藏權限,格式爲
chattr [參數] 文件
如果需要給文件添加一個參數,則需要+參數
如果需要給文件移除一個參數,則需要-參數
參數 | 含義 |
---|---|
i | 無法對文件進行修改;如果對目錄設置了該參數,則僅能修改其中的子文件的內容,而不能新建或者刪除該文件’ |
a | 僅允許對文件追加內筒,而不予許對文件進行覆蓋/刪除 (Append Only) |
S | 文件內容變更後立即同步到硬盤(sync) |
s | 徹底從硬盤刪除,不可恢復(用0填充源文件所在硬盤區域) |
A | 不再修改這個文件或目錄的最後訪問時間(atime) |
b | 不再修改文件或目錄的存取時間 |
D | 檢查壓縮文件中的錯誤 |
d | 使用dump命令備份時忽略本文件/目錄 |
c | 默認將文件或目錄進行壓縮 |
u | 當刪除該文件後依然保留其在硬盤中的數據,方便日後恢復 |
t | 讓文件系統支持尾部合併(tail-mergine) |
X | 可以直接訪問壓縮文件中的命令 |
2. lsattr 命令
lsattr 用來顯示文件的隱藏屬性
格式 :lsattr -參數 文件
root@juzuodaliyun:/home/test/20200505 lsattr b.txt
--------------e--- b.txt
root@juzuodaliyun:/home/test/20200505 chattr -e b.txt
root@juzuodaliyun:/home/test/20200505 lsattr b.txt
------------------ b.txt
這裏出現了一個e屬性,查了很多資料,有說是“文件爲可執行文件”。另外一種說法如下:
'e’屬性表示文件正在使用區段來映射塊磁盤。它不能使用chattr刪除。
一朵菊花臉上遮的CSDN博客
如果有知道的同學也請在評論區留言。
其餘的屬性就像介紹chattr的一樣參照上面的表格。