【Linux】淺析檔案屬性與許可權相關命令

楊jun堅發表於2020-11-16

1,chown

該命令用於修改檔案的所有者,或者同時修改所有者與使用者組
注意
1,只要root才能執行該命令,普通使用者無法執行,即使是檔案的所有者。
2,使用者必須已存在於系統,也就是在/etc/passwd中有記錄的使用者名稱。

[yang@localhost tmp]$ ll
total 4
-rwxrw-r--. 1 yang yang1 8 Nov 15 23:09 test
[yang@localhost tmp]$ chown -v alex test    
# 只要root才能執行該命令,普通使用者無法執行,即使是檔案的所有者
chown: changing ownership of ‘test’: Operation not permitted
failed to change ownership of ‘test’ from yang to alex

[yang@localhost tmp]$  chown -v aaa test 
#  使用者必須已存在於系統,也就是在/etc/passwd中有記錄的使用者名稱                                        
chown: invalid user: ‘aaa’

[root@localhost tmp]# chown alex:alex test
# root許可權同時修改所有者與使用者組,用":"隔開所有者與使用者組
[root@localhost tmp]# ll
total 4
-rwxrw-r--. 1 alex alex 8 Nov 15 23:09 test

2,chgrp

與 chown 命令不同,chgrp 允許普通使用者改變檔案所屬的組。
注意:
1,只有 root和檔案所有者才可執行chgrp修改使用者組
2,檔案所有者修改使用者組時,目標使用者組須是該檔案所有者所在的組
檔案test對應的所有者為yang,使用者組為yang
在這裡插入圖片描述
將檔案test的使用者組修改為yang1,報錯
在這裡插入圖片描述
使用者yang只是在yang這個組中
在這裡插入圖片描述
將yang同時加入到另外一個組yang1中,這樣yang就屬於兩個組,第一個為有效組,第二個為附屬組,接著修改檔案test的使用者組,發現可以修改,所以,目標使用者組須是該檔案所有者所在的組
在這裡插入圖片描述

3,chmod

該命令是控制使用者對檔案的許可權,只有root和檔案所有者有許可權執行chmod去修改檔案許可權。

[yang@localhost tmp]$ chmod 777 test
[yang@localhost tmp]$ ll
total 4
-rwxrwxrwx. 1 yang yang 8 Nov 15 23:09 test

4,chattr、lsattr

檔案或者目錄除了基本屬性外,還有隱藏屬性,可以通過chattr命令新增隱藏屬性,lsattr檢視新增的隱藏屬性。
部分重要屬性只有root才有許可權新增,比如i、a
檔案新增 i 屬性後,不能被刪除、改名、寫入或者新增資料,即使是root。

[root@localhost tmp]# chattr +i test    # 新增 i 屬性
[root@localhost tmp]# lsattr
s---i----------- ./test
[root@localhost tmp]# rm test     
rm: remove regular file ‘test’? y
rm: cannot remove ‘test’: Operation not permitted
[root@localhost tmp]# chattr -i test   # 刪除 i 屬性

檔案新增 a 屬性後,不能被刪除、修改檔案資料,只能新增資料。

使用lsattr可以檢視已經新增的隱藏屬性,如果哪天遇到一個連root都無法修改的檔案,那麼趕緊檢查下檔案是否新增了 i 屬性。

以上內容都是自己測試後得到的,如有錯誤,麻煩評論拍磚指出,學習學習!!!

相關文章