Linux Shell學習筆記(4):文件權限與歸屬(chown、chmod)和文件的隱藏屬性(chattr、lsattr)

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的一樣參照上面的表格

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章