理解Linux文件權(quán)限

主要內(nèi)容:

  1. 理解Linux安全性
  2. 使用Linux組
  3. 解讀文件權(quán)限

1. Linux安全性

Linux安全系統(tǒng)的核心是用戶賬戶。每個能進(jìn)入Linux系統(tǒng)的用戶都會被分配唯一的用戶賬戶。用戶對系統(tǒng)中各種對象的訪問權(quán)限取決于他們登錄系統(tǒng)時用的賬戶。

用戶權(quán)限是通過創(chuàng)建用戶時分配的用戶ID (User ID,通常縮寫為UID)來跟蹤的。UID是數(shù)值,每個用戶都有唯一的UID,但在登錄系統(tǒng)時用的不是UID,而是登錄名 。登錄名是用戶用來登錄系統(tǒng)的最長八字符的字符串(字符可以是數(shù)字或字母),同時會關(guān)聯(lián)一個對應(yīng)的密碼。

Linux系統(tǒng)使用特定的文件和工具來跟蹤和管理系統(tǒng)上的用戶賬戶。在我們討論文件權(quán)限之前,先來看一下Linux是怎樣處理用戶賬戶的。

主要涉及一些系統(tǒng)用戶,密碼修改,添加用戶的內(nèi)容,不做過多的介紹。

  passwd test//修改test用戶的密碼
 // chpasswd,chsh,chfn,change 等等
  finger 可以非常方便的查看Linux系統(tǒng)上的用戶信息。

2. Linux組

用戶賬戶在控制單個用戶安全性方面很好用,但涉及在共享資源的一組用戶時就捉襟見肘了。為了解決這個問題,Linux系統(tǒng)采用了另外一個安全概念—— 組 (group)。

/usr/sbin/groupadd shared //新建一個組
/usr/sbin/usermod -G shared rich //給組添加用戶
/usr/sbin/groupmod -n sharing shared //修改組名

//mac 下面查看所有組和用戶
dscacheutil -q group
mac

3. 理解文件權(quán)限

3.1 使用文件權(quán)限符

ls命令可以用來查看系統(tǒng)上面的文件、目錄、設(shè)備的權(quán)限

ls -l 

輸出結(jié)果的第一個字段就是描述文件和目錄權(quán)限的編碼。這個字段的第一個字符代表了對象的類型:

  • - 代表文件
  • d 代表目錄
  • l 代表鏈接
  • c 代表字符型設(shè)備
  • b 代表塊設(shè)備
  • n 代表網(wǎng)絡(luò)設(shè)備

之后有3組三字符的編碼。每一組定義了3種訪問權(quán)限:

  • r代表對象是可讀的
  • w 代表對象是可寫的
  • x 代表對象是可執(zhí)行的

若沒有某種權(quán)限,在該權(quán)限位會出現(xiàn)單破折線。這3組權(quán)限分別對應(yīng)對象的3個安全級別:

  • 對象的屬主
  • 對象的屬組
  • 系統(tǒng)其他用戶
3.2 默認(rèn)文件權(quán)限

文件創(chuàng)建之后的默認(rèn)權(quán)限是怎么來的呢,這個與umask命令有關(guān),umask命令用來設(shè)置所創(chuàng)建文件和目錄默認(rèn)權(quán)限。

我們先了解一下Linux文件的權(quán)限碼

權(quán)限 二進(jìn)制 八進(jìn)制 描述
--- 000 0 無權(quán)限
--x 001 1 只有執(zhí)行權(quán)限
-w- 010 2 只有寫入權(quán)限
-wx 011 3 寫和執(zhí)行權(quán)限
r-- 100 4 讀權(quán)限
r-x 101 5 讀取和執(zhí)行的權(quán)限
rw- 110 6 讀取的寫入的權(quán)限
rwx 111 7 所有權(quán)限

e.g.:664代表屬主和屬組有讀寫,其他的只有讀取。

那么對于文件 666 表示最大權(quán)限 對于目錄777表示最大權(quán)限

?  ~ umask
022
?  ~ touch dd
?  ~ ls -l dd
-rw-r--r--  1 zhanglinyu  staff  0  9 18 15:27 dd  //644
?  ~

644=666-022 //現(xiàn)在我們應(yīng)該知道umask的作用了

4. 改變安全性設(shè)置

chmod 命令用來改變文件和目錄的安全性設(shè)置。

該命令的格式如下: chmod options mode file。
八進(jìn)制模式符號模式

4.1 使用八進(jìn)制模式:
chmod 666 dd //表示所有讀寫權(quán)限都開放
4.2 使用符號模式:

[ugoa…][[+-=][rwxXstugo…]
u:代表用戶
g:代表組
o:代表其他
a:代表上述所有

下一步,后面跟著的符號表示你是想在現(xiàn)有權(quán)限基礎(chǔ)上增加權(quán)限(+),還是在現(xiàn)有權(quán)限基礎(chǔ)上移除權(quán)限(-),或是將權(quán)限設(shè)置成后面的值(=)。

最后,第三個符號代表作用到設(shè)置上的權(quán)限。你會發(fā)現(xiàn),這個值要比通常的rwx 多。額外的設(shè)置有以下幾項。

X :如果對象是目錄或者它已有執(zhí)行權(quán)限,賦予執(zhí)行權(quán)限。
s :運行時重新設(shè)置UID或GID。
t :保留文件或目錄。
u :將權(quán)限設(shè)置為跟屬主一樣。
g :將權(quán)限設(shè)置為跟屬組一樣。
o :將權(quán)限設(shè)置為跟其他用戶一樣。

chmod o+r dd //給dd文件其他用戶賦予讀取權(quán)限
4.3 改變所屬關(guān)系

有時你需要改變文件的屬主,比如有人離職或開發(fā)人員創(chuàng)建了一個在產(chǎn)品環(huán)境中需要歸屬在系統(tǒng)賬戶下的應(yīng)用。Linux提供了兩個命令來實現(xiàn)這個功能:chown 命令用來改變文件的屬主,chgrp 命令用來改變文件的默認(rèn)屬組。 chown 命令的格式如下。

chown options owner[.group] file

chown zhanglinyu dd //屬主變成zhanglinyu
chown zhanglinyu.staff dd//屬主和屬組都改變
chown .staff dd//改變屬組
chown test. dd //如果你的Linux系統(tǒng)采用和用戶登錄名匹配的組名,可以只用一個條目就改變二者。

chown 命令采用一些不同的選項參數(shù)。
-R 選項配合通配符可以遞歸地改變子目錄和文件的所屬關(guān)系。
-h 選項可以改變該文件的所有符號鏈接文件的所屬關(guān)系。

說明  只有root用戶能夠改變文件的屬主。任何屬主都可以改變文件的屬組,但前提是屬主必須是原屬組和目標(biāo)屬組的成員。

chgrp shared newDirective //改變文件或者目錄的默認(rèn)屬組

用戶賬戶必須是這個文件的屬主,除了能夠更換屬組之外,還得是新組的成員?,F(xiàn)在shared組的任意一個成員都可以寫這個文件了。這是Linux系統(tǒng)共享文件的一個途徑。然而,在系統(tǒng)中給一組用戶共享文件也會變得很復(fù)雜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 學(xué)習(xí)到這里,我發(fā)現(xiàn)我的macOS系統(tǒng)已經(jīng)不夠用了,又不想在自己的電腦上裝Linux系統(tǒng),所以是時候真正的搞個Lin...
    Miridescent閱讀 845評論 1 4
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,246評論 2 33
  • Linux通過“用戶”、“組”、“文件權(quán)限”控制用戶對文件的訪問和操作權(quán)限,從而達(dá)到安全。 用戶 /etc/pas...
    daifee閱讀 407評論 0 0
  • 時維溽暑,與別兩載。 松柏蹉跎,披星戴月。 青鳥飛魚,昔以為奢。 凌霄躍云,烈日灼心。 情懷應(yīng)在,三言兩拍。 崇仁...
    陳景行閱讀 300評論 0 1
  • 文|貓石魚 風(fēng)華正茂待金秋 生如夏花,淡若清風(fēng) 花團(tuán)錦簇,甚是熱鬧 兒時的弄堂口,一把狗尾巴草,幾個伙伴 伊藤伊葉...
    貓石魚閱讀 257評論 0 5

友情鏈接更多精彩內(nèi)容