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