Linux系統(tǒng)設(shè)置文件權(quán)限,多用戶(hù)模式下文件權(quán)限管理
為什么要給文件設(shè)置權(quán)限
首先,Linux是多用戶(hù)操作系統(tǒng),一臺(tái)服務(wù)器,可能有開(kāi)發(fā)、運(yùn)維、測(cè)試等多個(gè)部門(mén)構(gòu)成,同時(shí)還有有一個(gè)超級(jí)管理員root,也就是項(xiàng)目負(fù)責(zé)人CTO負(fù)責(zé)整個(gè)項(xiàng)目的進(jìn)度周期。
然而,Linux中的命令十分靈活,專(zhuān)業(yè)度要求也很高,如果一個(gè)剛剛實(shí)習(xí)的程序員擁有root權(quán)限,不小心刪除了重要文件或者數(shù)據(jù),就可能導(dǎo)致整個(gè)項(xiàng)目付之一炬?;蛘邌T工離職跑路直接刪除公司數(shù)據(jù)庫(kù),這樣的案例業(yè)內(nèi)屢見(jiàn)不鮮。
因此,就要給每個(gè)用戶(hù)分配不同權(quán)限,比如,每個(gè)用戶(hù)對(duì)自己創(chuàng)建的文件擁有最高權(quán)限,同時(shí),開(kāi)發(fā)組內(nèi)用戶(hù)對(duì)組內(nèi)文件可以進(jìn)行修改。每個(gè)操作都有日志記錄。然而,開(kāi)發(fā)組員工進(jìn)入運(yùn)維組目錄,只可以觀看,不可以更改。每個(gè)部門(mén)再設(shè)置一個(gè)共享目錄,共享目錄都不可以修改,只有將內(nèi)容拷貝到自己的目錄下才可以修改。
這樣,才可以更好的保障Linux系統(tǒng)的安全性,一方面防止自己內(nèi)部人員危險(xiǎn)操作,另一方面也可以防止黑客入侵,即時(shí)黑客破解了某個(gè)用戶(hù)的賬號(hào)密碼,由于權(quán)限有限,也難以進(jìn)行大規(guī)模損害操作。
權(quán)限的基本概念
Linux下一切皆文件,不同的用戶(hù)對(duì)文件擁有不同的權(quán)限。在多用戶(hù)計(jì)算機(jī)系統(tǒng)的管理中,權(quán)限是指某個(gè)特定的用戶(hù)具有特定的系統(tǒng)資源使用權(quán)利。
在Linux 中分別有讀、寫(xiě)、執(zhí)行權(quán)限:
權(quán)限針對(duì)文件 | 權(quán)限針對(duì)目錄 | |
讀r | 表示可以查看文件內(nèi)容 | 表示可以查看目錄中存在的文件名稱(chēng) |
寫(xiě)w | 表示可以更改文件的內(nèi)容 | 表示是否可以刪除目錄中的子文件或者新建子目錄( |
執(zhí)行x | 表示是否可以開(kāi)啟文件當(dāng)中記錄的程序,一般指二進(jìn)制文件(.sh) | 表示是否可以進(jìn)入目錄中 |
查看文件權(quán)限
Linux中,不同用戶(hù)角色創(chuàng)建文件默認(rèn)權(quán)限不同,root用戶(hù)創(chuàng)建文件默認(rèn)權(quán)限如上圖所示。
- -代表文件類(lèi)型是一個(gè)普通文件
- 紅框代表文件擁有者user
- 綠框代表文件所屬組group組內(nèi)其他用戶(hù)
- 藍(lán)框代表其他用戶(hù)other
- 如果是目錄,文件類(lèi)型為d
文件類(lèi)型
Linux一共有7種文件類(lèi)型,分別如下:
- -:普通文件
- d:目錄文件
- l: 軟鏈接(類(lèi)似Windows的快捷方式)
- b:block,塊設(shè)備文件(例如硬盤(pán)、光驅(qū)等)
- p:管道文件
- c:字符設(shè)備文件
- s:套接口文件/數(shù)據(jù)接口文件
文件權(quán)限設(shè)置-字母
權(quán)限設(shè)置:
1:確認(rèn)要給哪個(gè)身份設(shè)置權(quán)限,u、g、o、ugo(a)
2:確認(rèn)是添加權(quán)限(+)、刪除權(quán)限(-)還是賦予權(quán)限(=)
3:確認(rèn)給這個(gè)用戶(hù)針對(duì)這個(gè)文件或文件夾設(shè)置什么樣的權(quán)限,r、w、x
文件權(quán)限設(shè)置-數(shù)字
權(quán)限 | 對(duì)應(yīng)數(shù)字 | 意義 |
r | 4 | 可讀 |
w | 2 | 可寫(xiě) |
x | 1 | 可執(zhí)行 |
- | 0 | 沒(méi)有權(quán)限 |
文件擁有者和所屬組設(shè)置
擁有者設(shè)置
所屬組設(shè)置
同時(shí)修改擁有者和所屬組
特殊權(quán)限
冒險(xiǎn)位SETUID(針對(duì)二進(jìn)制文件)
作用:為了讓一般使用者臨時(shí)具有該文件所屬主/組的執(zhí)行權(quán)限。
例如:/usr/bin/passwd在執(zhí)行它的時(shí)候需要去修改/etc/passwd和/etc/shadow等文件,這些文件除了root外,其他用戶(hù)都沒(méi)有寫(xiě)權(quán)限,但是又為了能讓普通用戶(hù)修改自己的密碼,那么該如何操作?
去除S位權(quán)限
添加S位權(quán)限
強(qiáng)制位SETGID(針對(duì)目錄)
作用:如果一個(gè)目錄有強(qiáng)制位,那么任何用戶(hù)在該目錄里所創(chuàng)建的文件屬組都會(huì)繼承該目錄的屬組。
去除S位權(quán)限
添加S位權(quán)限
粘附位T(針對(duì)目錄)
作用:只允許文件的創(chuàng)建者和root用戶(hù)刪除文件(防止誤刪除權(quán)限位)
去除粘附位
添加粘附位
umask
umask表示創(chuàng)建文件時(shí)的默認(rèn)權(quán)限(即創(chuàng)建文件時(shí)不需要設(shè)置而天生的權(quán)限)
我們創(chuàng)建一個(gè)普通文件最高權(quán)限666,而創(chuàng)建一個(gè)文件夾其最高權(quán)限777。
實(shí)際文件權(quán)限 = 最高權(quán)限 - umask的值
獲取用戶(hù)umask值
修改umask值(一般不要更改)
臨時(shí)修改
永久修改
ACL權(quán)限
ACL,是 Access Control List(訪問(wèn)控制列表)的縮寫(xiě),在 Linux 系統(tǒng)中, ACL 可實(shí)現(xiàn)對(duì)單一用戶(hù)或者某個(gè)組設(shè)定訪問(wèn)文件的權(quán)限,ACL優(yōu)勢(shì)就是讓權(quán)限控制更加的精準(zhǔn)。
安裝acl
獲取ACL權(quán)限
設(shè)置ACL權(quán)限
mask權(quán)限設(shè)置:
目錄遞歸授權(quán)