淺析linux權(quán)限管理
出處:ZLG致遠(yuǎn)電子 發(fā)布于:2018-07-02 14:48:37
“一切皆是文件”是Unix/Linux的基本哲學(xué)之一,目錄、字符設(shè)備、塊設(shè)備、套接字等在Unix/Linux都是以文件的形式存在。面對(duì)眾多的文件,如何理解和管理他們的讀、寫(xiě)、執(zhí)行權(quán)限呢?
在Windows下,可以通過(guò)鼠標(biāo)右擊文件,在屬性欄查看文件的權(quán)限。Linux下的文件“哲學(xué)”是否與Windows相同呢?我們從以下幾點(diǎn)分析。
1 . 文件權(quán)限設(shè)定的作用
文件權(quán)限的設(shè)定是為了保護(hù)系統(tǒng)及用戶數(shù)據(jù)的安全性。對(duì)于用戶來(lái)說(shuō),重要的事情就是數(shù)據(jù)、文件的私密性及安全性。從系統(tǒng)管理員到普通用戶,從文件屬性到文件特殊加密 ,無(wú)不圍繞著一個(gè)主題:權(quán)限管理。若一個(gè)關(guān)鍵文件被意外寫(xiě)入,輕則數(shù)據(jù)丟失,重則系統(tǒng)崩潰。
以根目錄下的/proc目錄文件為例,該文件是linux內(nèi)核提供的一種虛擬文件系統(tǒng),可訪問(wèn)內(nèi)核內(nèi)部數(shù)據(jù)結(jié)構(gòu)、改變內(nèi)核設(shè)置的機(jī)制。其中swaps 為交換空間的使用情況,tty 保存tty設(shè)備信息,version Linux內(nèi)核版本和gcc版本。我們可以發(fā)現(xiàn),這些與系統(tǒng)緊密關(guān)聯(lián)的文件全部為只讀,即使對(duì)于root用戶。
圖1 /proc下的部分文件
2 . 文件權(quán)限的劃分
Linux下的權(quán)限管理從訪問(wèn)者方面來(lái)看大致可分為三塊,分別是用戶、用戶組、管理員。如圖2,打開(kāi)當(dāng)前用戶目錄下的文件列表細(xì)節(jié)。大部分時(shí)候我們使用此命令僅僅是關(guān)注右半部分的信息,比如文件名、日期、大小等。左半部分展現(xiàn)的就是對(duì)應(yīng)文件的權(quán)限信息了。
圖2 文件屬性細(xì)節(jié)
Linux系統(tǒng)對(duì)用戶的權(quán)限有著嚴(yán)格的管理。如圖3,可將一個(gè)文件的權(quán)限分為三部分:對(duì)文件所有者權(quán)限、對(duì)所有者所在用戶組權(quán)限、對(duì)其他用戶權(quán)限。其中,用戶組(group)就是具有相同特征的用戶的集合體。
圖3文件權(quán)限
用戶和用戶組的信息分別在/etc目錄下的passwd、group文件內(nèi),可以使用cat命令直接讀取。
圖4用戶/用戶組信息
3 . 文件權(quán)限更改方法
Linux提供chmod命令用于改變或者設(shè)置文件的權(quán)限。命令格式如圖5,將hello 文件的其它用戶權(quán)限可執(zhí)行屬性去掉hello$ chmod o-x hello。如果同時(shí)設(shè)置 u/g/o,可用 a 表示,例如為 hello 增加全部用戶可執(zhí)行權(quán)限: ~$ chmoda+x hello。
圖5文件權(quán)限更改(一)
前面我們說(shuō)到,linux的文件權(quán)限管理是一種“哲學(xué)美”,chmod命令還提供更間接的使用方式。如圖6,分別將r、w、x對(duì)應(yīng)為數(shù)字4、2、1,用數(shù)字之和代表該組權(quán)限值,比如rwx可用 7 表示, r-x 可用 5 表示。若想將hello文件設(shè)置為寬松的權(quán)限,可直接使用命令chmod 777 hello。
圖6文件權(quán)限更改(二)
那么除了先創(chuàng)建文件再修改權(quán)限,是否可直接創(chuàng)建特定權(quán)限的文件呢?答案是肯定的,我們可以通過(guò)修改umask的值管理對(duì)應(yīng)用戶默認(rèn)權(quán)限??梢灾苯虞斎雞mask獲取當(dāng)前用戶的權(quán)限默認(rèn)值,當(dāng)然也可以使用umask=xxx去修改它。此外,若想設(shè)置umask的值,可以修改~/.bashrc或者./bash_profile。Umask的值與文件的權(quán)限并不是一一對(duì)應(yīng)的,感興趣到的讀者可以查閱相關(guān)資料。
圖7 用戶默認(rèn)權(quán)限更改
4 . 如何保護(hù)重要文件
文件的保護(hù)可以從量方面入手:文件的權(quán)限管理、文件及時(shí)備份。
權(quán)限管理方面,在更改文件權(quán)不可隨意,比如直接chmod 777 filename。以系統(tǒng)或APP的工作日志文件為例,它對(duì)絕大部分可登錄用戶僅可讀,若對(duì)其覆蓋寫(xiě)入將丟失日志信息。在復(fù)雜的多用戶協(xié)同系統(tǒng)中,要嚴(yán)格管理單用戶權(quán)限、組用戶權(quán)限,慎用root用戶權(quán)限。
圖8只讀日志文件
對(duì)于標(biāo)準(zhǔn)的rootfs,不建議普通用戶直接去更改它,在uboot掛載該文件系統(tǒng)時(shí)直接賦予它只讀權(quán)限。將bootargs的一項(xiàng)賦值為“ro”即為read only。若需臨時(shí)修改為讀寫(xiě)模式,可使用mount -o remount,rw /,用于臨時(shí)修改為可讀寫(xiě)模式,盡量避免修改uboot代碼。
圖9 文件系統(tǒng)權(quán)限更改
文件備份時(shí)保護(hù)重要文件的另一種手段,在嚴(yán)格的權(quán)限管理機(jī)制也不能保證萬(wàn)無(wú)一失。重要文件可使用腳本自動(dòng)化、定時(shí)備份,必要時(shí)還可以將文件保存到其他物理存儲(chǔ)介質(zhì)或云盤(pán)中。在涉及到扣費(fèi)、計(jì)費(fèi)時(shí),數(shù)據(jù)及文件的安全性顯得尤為重要。ZLG致遠(yuǎn)電子“公共交通的移動(dòng)支付—公交POS”方案中使用的ARM9板采用雙備份文件系統(tǒng)及UPS掉電保護(hù)設(shè)計(jì)來(lái)保證扣費(fèi)數(shù)據(jù)的可靠。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- ARM技術(shù)架構(gòu)與應(yīng)用開(kāi)發(fā)實(shí)踐指南2026/1/6 10:40:19
- 嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)選型與移植技術(shù)指南2025/12/31 10:42:31
- 工業(yè)嵌入式系統(tǒng):通信接口技術(shù)選型與抗干擾設(shè)計(jì)實(shí)踐2025/12/15 14:36:53
- 深入解析嵌入式 OPENAMP 框架:開(kāi)啟異核通信新時(shí)代2025/7/22 16:27:29
- 一文快速了解OPENWRT基礎(chǔ)知識(shí)2025/7/14 16:59:04
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見(jiàn)問(wèn)題分析









