一.權限對目錄、文件的意義
文件
r 可用文件查看類工具獲取文件內容
w 可以修改文件內容(包括清空)
x 可執行該文件
[root@localhost testdir]# cat zzz i am fine thank you [root@localhost testdir]# su -l tian -c "cat zzz" cat: zzz: No such file or directory [root@localhost testdir]# su -l tian -c "cat /testdir/zzz" i am fine thank you [root@localhost testdir]# chmod o=w zzz [root@localhost testdir]# su -l tian -c "cat /testdir/zzz" cat: /testdir/zzz: Permission denied [root@localhost testdir]# su -l tian -c "cat /testdir/zzz"
目錄
r 可用 "ls"但是看不了文件元數據
w 可添加或刪除文件
x 可用ls -l ,也可切換進該目錄
X 如果是目錄的話,可以給予x權限,如果是文件,不會給x權限
此時給予/testdir/目錄下所有文件rwX權限,但由于a是文件,安全起見,不給予x權限
一個文件能不能刪除,與文件的權限沒關系,與目錄的權限有關
二.chown命令使用詳解
chown owner 僅改變屬主
chown owner: 改變屬主和屬組
chown owner:group 改變屬主和屬組
chown :group 僅改變屬組
chown –reference=file 以什么為標本改變
-R 遞歸
三.chmod命令使用詳解
1.使用字符表示權限
chmod '用戶 符號 權限’文件
用戶: u:代表文件屬主
g:代表用戶組
o:其他人
a:所有人
符號:+ : 在原有基礎上給用戶增加權限
– :在原有基礎上給用戶減少權限
= :給用戶重新賦予權限
權限:r w x
(2)數字法表示權限
r >100>4
w>010>2
x>001>1
使用方法與上邊類似,把相應用戶的相應權限換為權限的和就行
實例:給a文件的組增加w權限
四.umask的相關知識
-
umask # 設置umask的值為#
umask -S 按字符格式顯示umask的值
umask -p 可做STDIN
-
文件默認權限666-umask(如結果某位出現奇數,將其加一)
目錄默認權限777-umask
-
全局配置文件/etc/bashrc
局部配置文件~.bashrc
實例:設置umask為333,用字符格式顯示umask的值,并創建目錄c和文件c觀察其權限
發現文件c的權限為444
五.特殊權限的相關說明
(1)suid 僅對二進制程序有用
執行者需對該程序有x權限
執行者將擁有程序所有者的權限
(2)sgid
對文件
僅對二進制程序有用
執行者獲得用戶組的權限
對目錄(項目組經常用)
執行者對目錄具有r x權限,進入該目錄
執行者在此目錄下的有效用戶組變成該目錄的用戶組
具有w權限,創建文件的用戶組與該目錄的用戶組相同
總結:要想實現對目錄sgid,需切換當前有效組為共享組
(3)sbit
僅對目錄有效
當用戶在該目錄下創建文件或目錄時,僅有自己
或root可以刪除
(4)一般情況下,不能設置為7666
如果文件擁有者都沒有執行權限,怎么給其他用戶權限使用
(5)當特殊權限為大寫的時候 ,說明本來無x權限
(6)權限一旦匹配,就不往下繼續匹配,不論首先匹配的值是否合適
六.chattr命令詳解
.chattr +a 文件數據只能增加
chattr +i 文件不能被刪除,改名,連接或添加數據
chattr +s 文件被刪除的話,會被完全從硬盤刪除
chattr +u 文件被刪除的話,內容還在磁盤里邊,可以復原
用testuser用戶無法再a文件中添加內容
七.acl相關知識
(1)使用dumpe2fs -h 設備文件 查看Default mount options 這一行看文件系統是否支持acl (通過dump查看)
(2)setfacl [-bkRd] [{-m|-x} acl參數] [{-M|-X} acl-file] 目標文件名 (M X 參數引用標準輸入)
setfacl –restore=file
setfacl –set-file=file2 file1
-m 設置后續的acl參數給文件使用
-x 刪除后續的參數
-k 刪除默認的acl參數
-b 刪除所有的extend acl設置參數
-R 遞歸設置acl 子目錄也會被設置相應權限(只是目錄)
-d 設置默認acl參數,只對目錄有效,該目錄新建的文件也會引用此默認值(文件)給予改目錄rwx權限, 其下邊的文件依舊沒有x權限
-n 不參考mask值,默認參考mask值
用戶或組空的話,默認是文件的屬組或屬主
(3)acl生效順序:所有者 自定義用戶 自定義組 用戶組 (mask)其他人
(4)mask作用是讓用戶或組所設置的權限必須在mask的范圍內才生效
mask只影響除所有者和other以外的用戶和組
acl文件的組權限是mask值,不是傳統意義上的組權限
mask是在設置完本組成員權限以后,再在該組成員中去除不合適權限
(5)基本的acl是刪不掉的
(6)對一個用戶組設置acl權限,一個當前有效組不是這個組的的用戶也是繼承次acl權限的
(7)–set會把原來的acl項全部刪除,此時要包含ugo設置
(8)cp -p mv 命令支持acl,tar等常見的備份工具不會保留文件的acl權限
實例一:通過setfal給予tian用戶修改root文件a的權限
實例二:實現cp復制文件繼承acl權限
八.課后作業
-
復制/etc/fstab到/var/tmp下,設置文件所有者wangcai為讀寫權限,所屬組sysadmins為讀寫權限,其他人無權限
-
誤刪了wangcai家目錄,請回復wangcai家目錄及相關權限
-
在/data/testdir里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件
(1).創建文件夾,所有組設置為g1,設置sgid
(2)創建alice,其主組為g2,創建tom,其主組為g3
(3)設置acl權限
(4)創建文件測試,發現Alice可以對a文件寫入
發現Tom只能讀內容,不能修改
原創文章,作者:mengzhiqian,如若轉載,請注明出處:http://www.www58058.com/31262
文章整體思路不夠清晰,下次如果這樣敷衍,就可能需要好好改進了哦。