linux文件權限和幾種表示方法
文件長度大約最大爲255bytes或128個漢字字符linux
linux文件權限有幾種表示方法:shell
使用ls -al 便可查詢到目錄的權限內容:安全
文件權限說明:
格式爲: drwxr-xr-x 異步
o 第一組爲『文件擁有者可具有的權限』,以『initial-setup-ks.cfg』那個文件爲例, 該文件的擁有者
能夠讀寫,但不可執行;
o 第二組爲『加入此羣組之帳號的權限』;
o 第三組爲『非本人且沒有加入本羣組之其餘帳號的權限』。
當爲[ d ]則是目錄
o 當爲[ - ]則是文件
o 如果[ l ]則表示爲連結檔(link file);
o 如果[ b ]則表示爲裝置文件裏面的可供儲存的接口設備(可隨機存取裝置);
o 如果[ c ]則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置)。
o 如果[ P]則表示爲數據輸送文件(FIFO)
o 如果[ s]則表示爲socket文件
文件權限分爲:socket
普通權限:spa
read(r): 擁有目錄和文件的權限:code
write:(w): 擁有在目錄下創建和刪除文件的權限或者修改文件的權限blog
excute(x): 擁有執行文件的權限和進入此目錄的權限接口
特殊權限:SUID:SGID:SBITip
如drwxrwsrwt
修改文件,目錄權限和羣組
- chgrp: 改變文件或目錄所屬羣組
- chown:改變文件擁有者
- chmod:改變文件權限
例子:
改變文件所屬羣組
chgrp guan 1.txt
改變文件擁有者:
chown root 1.txt
同時改變目錄和目錄下文件要加上-R
chwon -R test
快捷改變方式:
chown alex:guan 1.txt
修改文件權限有幾種方式:
1:根據4 + 2 + 1的方式, 如加上特殊權限,則有隱藏權限,則 SUID(4) SGID(2) SBIT(1):
2: 根據加減法加減文件權限: u:擁有者 g羣組權限 o其餘人權限 a:全部人
例子:
全部人的權限:
chmod 2777 1.txt
加減權限:
chmod u+x 1.txt
文件對全部人都有能夠執行的權限:
chmod a+x 1.txt
3: 文件umask
一般創建文件之時咱們的umask默認爲0022
linux文件系統創建之時預設文件權限爲:
- 目錄權限:drwxrwxrwx
- 文件權限:drwxrw-rx-
- 新建目錄權限爲默認權限減去設定的對應umask值, 即爲目錄drwxrwxrwx - 0022(d----w--w-) 即爲去除羣組和其餘人的w權限,則目錄權限爲drwxr-xr-x: 文件則爲drwxr--r--
如何設定umask和查看
- umask數字顯示
- umask -S 分類顯示文件權限
- umask 0022設定文件權限
文件隱藏屬性:
在linuxEXT2,EXT3,EXT4和部分文件系統能夠用chattr設定文件隱藏屬性:
chattr [+-=][ASacdistu] 文件或目錄名稱
A :當設定了 A 這個屬性時,若你有存取此文件(或目錄)時,他的訪問時間 atime 將不會被修改,
可避免 I/O 較慢的機器過分的存取磁盤。(目前建議使用文件系統掛載參數處理這個項目)
S :通常文件是異步寫入磁盤的(原理請參考前一章 sync 的說明),若是加上 S 這個屬性時,
當你進行任何文件的修改,該更動會『同步』寫入磁盤中。
a :當設定 a 以後,這個文件將只能增長數據,而不能刪除也不能修改數據,只有 root 才能設定這屬性
c :這個屬性設定以後,將會自動的將此文件『壓縮』,在讀取的時候將會自動解壓縮,
可是在儲存的時候,將會先進行壓縮後再儲存(看來對於大文件彷佛蠻有用的!)
d :當 dump 程序被執行的時候,設定 d 屬性將可以使該文件(或目錄)不會被 dump 備份
i :這個 i 可就很厲害了!他可讓一個文件『不能被刪除、更名、設定連結也沒法寫入或新增數據!』
對於系統安全性有至關大的幫助!只有 root 能設定此屬性
s :當文件設定了 s 屬性時,若是這個文件被刪除,他將會被徹底的移除出這個硬盤空間,
因此若是誤刪了,徹底沒法救回來了喔!
u :與 s 相反的,當使用 u 來配置文件案時,若是該文件被刪除了,則數據內容其實還存在磁盤中,
可使用來救援該文件
注意 1:屬性設定常見的是 a 與 i 的設定值,並且不少設定值必需要身爲 root 才能設定
注意 2:xfs 文件系統僅支援 AadiS 而已
例子:
chattr +i attrtest <==給予 i 的屬性
lsattr attrtest
關於特殊權限SUID,SGID,SBIT的說明:
SUID
說明:只要用戶擁有對程序具備X的權限 SUID可讓普通用戶暫時得到擁有者的權限從而執行此二進制程序
SUID 權限僅對二進制程序(binary program)有效;
執行者對於該程序須要具備 x 的可執行權限;
本權限僅在執行該程序的過程當中有效 (run-time);
執行者將具備該程序擁有者 (owner) 的權限。
注意:只能用於二進制文件,不能用於shell scripts
SGID
說明:SGID能夠用於目錄或者文件,當用戶具備X的權限, SGID能夠給與用戶所在羣組的權限
SGID 對二進制程序有用;
程序執行者對於該程序來講,需具有 x 的權限;
執行者在執行的過程當中將會得到該程序羣組的支持!
創建目錄時:
用戶若對於此目錄具備 r 與 x 的權限時,該用戶可以進入此目錄;
用戶在此目錄下的有效羣組(effective group)將會變成該目錄的羣組;
用途:若用戶在此目錄下具備 w 的權限(能夠新建文件),則使用者所創建的新文件,該新文件的羣組與此
目錄的羣組相同。
SBIT
說明:具備此權限的用戶只可以刪除本身創建的文件和目錄, 不可以刪除其餘用戶的
注意:此權限只對目錄有用
當用戶對於此目錄具備 w, x 權限,亦即具備寫入的權限時; 當用戶在該目錄下創建文件或目錄時,僅有本身與 root 纔有權力刪除該文件
例子:
當甲這個用戶於 A 目錄是具備羣組或其餘人的身份,而且擁有該目錄 w 的權限, 這表
示『甲用戶對該目錄內任何人創建的目錄或文件都可進行 "刪除/改名/搬移" 等動做。』 不過,若是
將 A 目錄加上了 SBIT 的權限項目時,則甲只可以針對本身創建的文件或目錄進行刪除/改名/移動
等動做,而沒法刪除他人的文件。