主要內(nèi)容:
- 理解Linux安全性
- 使用Linux組
- 解讀文件權(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
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)屬組
用戶賬戶必須是這個文件的屬主搂擦,除了能夠更換屬組之外稳诚,還得是新組的成員。現(xiàn)在shared組的任意一個成員都可以寫這個文件了瀑踢。這是Linux系統(tǒng)共享文件的一個途徑扳还。然而,在系統(tǒng)中給一組用戶共享文件也會變得很復(fù)雜橱夭。