Linux的權(quán)限管理操作?
在Linux中分別有讀、寫、執(zhí)行權(quán)限:
讀權(quán)限:
對于文件夾來說,讀權(quán)限影響用戶是否能夠列出目錄結(jié)構(gòu)
對于文件來說,讀權(quán)限影響用戶是否可以查看文件內(nèi)容
?
寫權(quán)限:
對文件夾來說,寫權(quán)限影響用戶是否可以在文件夾下“創(chuàng)建/刪除/復制到/移動到”文檔
對于文件來說,寫權(quán)限影響用戶是否可以編輯文件內(nèi)容
?
執(zhí)行權(quán)限:
對于文件來說,特別腳本文件。執(zhí)行權(quán)限影響文件是否可以運行。
2、身份介紹
Owner身份(文件所有者,默認為文檔的創(chuàng)建者)
Group身份(與文件所有者同組的用戶)多個團隊在同一臺主機上開發(fā)資源的時候。
Others身份(其他人,相對于所有者與同組用戶)
Root用戶(超級用戶)
3、Linux的權(quán)限介紹
#ls?-l?路徑 【ls?-l??等價于ll】
Linux中存在用戶(owner)、用戶組(group)和其他人(others)概念,各自有不同的權(quán)限,對于一個文檔來說,其權(quán)限具體分配如下:
-rwxr-xr-xuser1user1timeFILENAME
文件類型擁有者的權(quán)限所屬組的權(quán)限其他人的權(quán)限擁有者屬組最后修改時間對象
十位字符表示含義:
第1位:表示文檔類型,取值常見的有“d表示文件夾”、“-表示文件”、“l(fā)表示軟連接”、“s表示套接字”、“c表示字符設(shè)備”、“b表示塊狀設(shè)備”等等;
第2-4位:表示文檔所有者的權(quán)限情況,第2位表示讀權(quán)限的情況,取值有r、-;第3位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,第4位表示執(zhí)行權(quán)限的情況,取值有x、-。
第5-7位:表示與所有者同在一個組的用戶的權(quán)限情況,第5位表示讀權(quán)限的情況,取值有r、-;第6位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,第7位表示執(zhí)行權(quán)限的情況,取值有x、-。
第8-10位:表示除了上面的前2部分的用戶之外的其他用戶的權(quán)限情況,第8位表示讀權(quán)限的情況,取值有r、-;第9位表示寫權(quán)限的情況,w表示可寫,-表示不可寫,第10位表示執(zhí)行權(quán)限的情況,取值有x、-。
權(quán)限分配中,均是rwx的三個參數(shù)組合,且位置順序不會變化。沒有對應權(quán)限就用– 代替。
例如:以下一個文檔權(quán)限是怎么樣的?
二、權(quán)限設(shè)置(重點)
語法:#chmod?選項權(quán)限模式文檔
注意事項:
常用選項:
-R:遞歸設(shè)置權(quán)限 (當文檔類型為文件夾的時候)
權(quán)限模式:就是該文檔需要設(shè)置的權(quán)限信息
文檔:可以是文件,也可以是文件夾,可以是相對路徑也可以是絕對路徑。
注意點:如果想要給文檔設(shè)置權(quán)限,操作者要么是root用戶,要么就是文檔的所有者。
1、字母形式
給誰設(shè)置:
u:表示所有者身份owner(user)
g:表示給所有者同組用戶設(shè)置(group)
o:表示others,給其他用戶設(shè)置權(quán)限
a:表示all,給所有人(包含ugo部分)設(shè)置權(quán)限
如果在設(shè)置權(quán)限的時候不指定給誰設(shè)置,則默認給所有用戶設(shè)置
權(quán)限字符:
r:讀
w:寫
x:表示執(zhí)行
-:表示沒有權(quán)限
權(quán)限分配方式:
+:表示給具體的用戶新增權(quán)限(相對當前)
-:表示刪除用戶的權(quán)限(相對當前)
=:表示將權(quán)限設(shè)置成具體的值(注重結(jié)果)【賦值】
提示:當文檔擁有執(zhí)行權(quán)限(任意部分),則其顏色在終端中是綠色。
#chmod?ug=rwx??形式,如果有兩部分權(quán)限一樣則可以合在一起寫的
等價于:
#chmod?u=rwx,g=rwx
[if !supportLists]2、[endif]數(shù)字形式
讀:r????????4
寫:w ?2
執(zhí)行:x ?1
沒有任何權(quán)限:0對應---
例如:需要給anaconda-ks.cfg設(shè)置權(quán)限,權(quán)限要求所有者擁有全部權(quán)限,同組用戶擁有讀執(zhí)行權(quán)限,其他用戶只讀。
所有者權(quán)限=?全部權(quán)限=?讀+ 寫+執(zhí)行=?4 + 2 + 1 =?7
同組用戶權(quán)限=?讀權(quán)限+ 執(zhí)行權(quán)限=?4 + 1 =?5
其他用戶權(quán)限=?讀權(quán)限=?4
注意:在寫權(quán)限的時候千萬不要設(shè)置類似于上面的這種“奇葩權(quán)限”。如果一個權(quán)限數(shù)字中但凡出現(xiàn)2與3的數(shù)字,則該權(quán)限有不合理的情況。
在Linux中,如果要刪除一個文件,不是看文件有沒有對應的權(quán)限,而是看文件所在的目錄是否有寫權(quán)限,如果有才可以刪除。
三、屬主(zhu)與屬組(zu)設(shè)置
屬主:所屬的用戶(文件的主人),文檔所有者
屬組:所屬的用戶組
之所以需要設(shè)置這個:如果有時候去刪除某個用戶,則該用戶對應的文檔的屬主和屬組信息就需要去修改(類似離職之前的工作交接)。
?
1、chown
作用:更改文檔的所屬用戶(change?owner)
語法:#chown??-R ?新的username?文檔路徑
?
-R:表示選項 ?文件不需要-R
目錄需要加-R
2、chgrp(了解)
作用:更改文檔的所屬用戶組
語法:#chgrp??-R ?groupname??文檔的路徑
語法:#chown??-R ?username:groupname???文檔路徑
文件的特殊權(quán)限:suid sgid?
1、SUID(set uid設(shè)置用戶ID):限定:只能設(shè)置在二進制可執(zhí)行程序上面。對目錄設(shè)置無效
功能:程序運行時的權(quán)限從執(zhí)行者變更成程序所有者的權(quán)限
2、SGID:限定:既可以給二進制可執(zhí)行程序設(shè)置,也可以對目錄設(shè)置
功能:在設(shè)置了SGID權(quán)限的目錄下建立文件時,新創(chuàng)建的文件的所屬組會,繼承上級目錄的所屬組
SUIDSGID
u+s或u=4g+s或g=2
SUID屬性一般用在可執(zhí)行文件上,當用戶執(zhí)行該文件時,會臨時擁有該執(zhí)行文件的所有者權(quán)限。使用”ls -l” 或者”ll” 命令瀏覽文件時,如果可執(zhí)行文件所有者權(quán)限的第三位是一個小寫的”s”,就表明該執(zhí)行文件擁有SUID屬性。
SGID:
限定:既可以給二進制可執(zhí)行程序設(shè)置,也可以給目錄設(shè)置。
功能:在設(shè)置了SGID權(quán)限的目錄下建立文件時,新創(chuàng)建的文件的所屬組會繼承上級目錄的權(quán)限。
實戰(zhàn):文件擴展權(quán)限ACL
擴展ACL:access control list
例:設(shè)置用戶yw對文件a.txt擁有的rwx權(quán)限 ,yw不屬于a.txt的所屬主和組,yw是other