0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux下文件“哲學(xué)”是否與Windows相同?

工程師兵營(yíng) ? 來(lái)源:網(wǎng)絡(luò) ? 作者:網(wǎng)絡(luò) ? 2022-07-11 15:37 ? 次閱讀

“一切皆是文件”是Unix/Linux的基本哲學(xué)之一,目錄、字符設(shè)備、塊設(shè)備、套接字等在Unix/Linux都是以文件的形式存在。面對(duì)眾多的文件,如何理解和管理他們的讀、寫(xiě)、執(zhí)行權(quán)限呢?

在Windows下,可以通過(guò)鼠標(biāo)右擊文件,在屬性欄查看文件的權(quán)限。Linux下的文件“哲學(xué)”是否與Windows相同呢?我們從以下幾點(diǎn)分析。

一、文件權(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.png

圖1 /proc下的部分文件

二、文件權(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.png

圖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.png

圖3 文件權(quán)限

用戶和用戶組的信息分別在/etc目錄下的passwd、group文件內(nèi),可以使用cat命令直接讀取。

4.png

圖4 用戶/用戶組信息

三、文件權(quán)限更改方法

Linux提供chmod命令用于改變或者設(shè)置文件的權(quán)限。命令格式如圖5,將hello 文件的其它用戶權(quán)限可執(zhí)行屬性去掉:vmuser@Linux-host: hello$ chmod o-x hello。如果同時(shí)設(shè)置 u/g/o,可用 a 表示,例如為 hello 增加全部用戶可執(zhí)行權(quán)限:vmuser@Linux-host: ~$ chmoda+x hello。

5.png

圖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.png

圖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.png

圖7 用戶默認(rèn)權(quán)限更改

四、如何保護(hù)重要文件

文件的保護(hù)可以從量方面入手:文件的權(quán)限管理、文件及時(shí)備份。

權(quán)限管理方面,在更改文件權(quán)限時(shí)不可隨意,比如直接chmod 777 filename。以系統(tǒng)或APP的工作日志文件為例,它對(duì)絕大部分可登錄用戶僅可讀,若對(duì)其覆蓋寫(xiě)入將永久丟失日志信息。在復(fù)雜的多用戶協(xié)同系統(tǒng)中,要嚴(yán)格管理單用戶權(quán)限、組用戶權(quán)限,慎用root用戶權(quán)限。

8.png

圖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.png

圖9 文件系統(tǒng)權(quán)限更改

文件備份時(shí)保護(hù)重要文件的另一種手段,在嚴(yán)格的權(quán)限管理機(jī)制也不能保證萬(wàn)無(wú)一失。重要文件可使用腳本自動(dòng)化、定時(shí)備份,必要時(shí)還可以將文件保存到其他物理存儲(chǔ)介質(zhì)或云盤中。在涉及到扣費(fèi)、計(jì)費(fèi)時(shí),數(shù)據(jù)及文件的安全性顯得尤為重要。

10.png

圖10 文件系統(tǒng)雙備份

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11304

    瀏覽量

    209497
  • arm9
    +關(guān)注

    關(guān)注

    2

    文章

    290

    瀏覽量

    55026
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux文件查找

    Linux文件查找 1.find查找概述 為什么要有文件查找,因?yàn)楹芏鄷r(shí)候我們可能會(huì)忘了某個(gè)文件所在的位置,此時(shí)就需要通過(guò)find來(lái)查找。 find命令可以根據(jù)不同的條件來(lái)進(jìn)行查找
    的頭像 發(fā)表于 12-03 17:09 ?260次閱讀

    Linux文件壓縮打包的各種姿勢(shì)

    壓縮,然后在進(jìn)行傳輸。 首先:壓縮后的文件會(huì)比壓縮前的文件小。一個(gè)28G的文件夾壓縮后能達(dá)到6G?其次:多個(gè)文件傳輸很慢,但單個(gè)文件傳輸會(huì)很
    的頭像 發(fā)表于 12-02 09:25 ?211次閱讀

    TLV320AIC3204IRHBR能否用于HD Audio的?在WindowsLinux是否有相應(yīng)的驅(qū)動(dòng)呢?

    TLV320AIC3204IRHBR能否用于HD Audio的,在WindowsLinux是否有相應(yīng)的驅(qū)動(dòng)呢?
    發(fā)表于 10-14 06:49

    軟件設(shè)計(jì)哲學(xué) 于延保代碼改造中的實(shí)踐

    》的影響,它將軟件設(shè)計(jì)稱為“哲學(xué)”,而哲學(xué)本身沒(méi)有嚴(yán)格的定論,同樣地,我覺(jué)得軟件設(shè)計(jì)是每個(gè)開(kāi)發(fā)者的理念,相同功能的迭代,往往會(huì)有不同的看法或思想,也所謂每個(gè)人的代碼風(fēng)格,所以本次分享不求同,只求能給大家?guī)?lái)一點(diǎn)啟發(fā)。兩個(gè)理念如下
    的頭像 發(fā)表于 10-11 14:44 ?235次閱讀
    軟件設(shè)計(jì)<b class='flag-5'>哲學(xué)</b> 于延保代碼改造中的實(shí)踐

    Linux文件系統(tǒng)的掛載過(guò)程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件系統(tǒng)。
    的頭像 發(fā)表于 10-05 16:50 ?423次閱讀

    如何構(gòu)建Linux文件系統(tǒng)

    構(gòu)建Linux文件系統(tǒng)是一個(gè)涉及多個(gè)步驟和概念的過(guò)程,它對(duì)于Linux系統(tǒng)的啟動(dòng)和運(yùn)行至關(guān)重要。
    的頭像 發(fā)表于 10-05 16:47 ?303次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-開(kāi)發(fā)環(huán)境搭建之windows和ubuntu系統(tǒng)互傳文件

    linux-4.1.15-elf1.tar.bz2、文件系統(tǒng)(本節(jié)以rootfs.tar.bz2為例)、命令行測(cè)試程序elf1_cmd_wdt.c放到Windows主機(jī)的共享文件夾后。
    發(fā)表于 09-25 09:41

    飛凌嵌入式ElfBoard ELF 1板卡-開(kāi)發(fā)環(huán)境搭建之windows和ubuntu系統(tǒng)互傳文件

    linux-4.1.15-elf1.tar.bz2、文件系統(tǒng)(本節(jié)以rootfs.tar.bz2為例)、命令行測(cè)試程序elf1_cmd_wdt.c放到Windows主機(jī)的共享文件夾后。
    發(fā)表于 09-24 10:15

    研華工控機(jī)用什么系統(tǒng)?WindowsLinux操作系統(tǒng)的較量

    工控機(jī)用什么系統(tǒng)?WindowsLinux操作系統(tǒng)的較量。工控機(jī)(工業(yè)控制計(jì)算機(jī))作為工業(yè)自動(dòng)化和監(jiān)控系統(tǒng)的核心組件,其穩(wěn)定性、可靠性和性能對(duì)整個(gè)系統(tǒng)的運(yùn)行至關(guān)重要。WindowsLinu
    的頭像 發(fā)表于 06-14 14:38 ?701次閱讀
    研華工控機(jī)用什么系統(tǒng)?<b class='flag-5'>Windows</b>與<b class='flag-5'>Linux</b>操作系統(tǒng)的較量

    微軟將優(yōu)化Windows Subsystem for Linux并加入圖形用戶界面設(shè)置

    微軟宣布提升Windows Subsystem for Linux(WSL)性能,推出全新設(shè)置應(yīng)用提供圖形化配置環(huán)境。
    的頭像 發(fā)表于 05-31 11:26 ?559次閱讀

    3562-Linux系統(tǒng)啟動(dòng)卡制作及系統(tǒng)固化

    Windows 開(kāi)發(fā)環(huán)境:Windows 7 64bit、Windows 10 64bit 虛擬機(jī):VMware16.2.5 Linux 開(kāi)發(fā)環(huán)境:Ubuntu20.04.6 64
    的頭像 發(fā)表于 03-05 15:58 ?322次閱讀
    3562-<b class='flag-5'>Linux</b>系統(tǒng)啟動(dòng)卡制作及系統(tǒng)固化

    linux服務(wù)器和windows服務(wù)器

    Linux服務(wù)器和Windows服務(wù)器是目前應(yīng)用最廣泛的兩種服務(wù)器操作系統(tǒng)。兩者各有優(yōu)劣,也適用于不同的應(yīng)用場(chǎng)景。本文將 對(duì)Linux服務(wù)器和Windows服務(wù)器進(jìn)行比較,并介紹它們各
    發(fā)表于 02-22 15:46

    linuxwindows的區(qū)別 linux系統(tǒng)一般用來(lái)干嘛

    LinuxWindows是兩種不同的操作系統(tǒng),有著不同的設(shè)計(jì)理念和用途。本文將對(duì)LinuxWindows的區(qū)別進(jìn)行詳細(xì)分析,并介紹Linux
    的頭像 發(fā)表于 02-05 14:06 ?971次閱讀

    如何使用squashfs只讀文件系統(tǒng)制作Linux系統(tǒng)文件

    在 Colibri iMX6 的 eMMC 上我們將使用以下分區(qū)規(guī)劃。BootFS 為 FAT32 格式,該分區(qū)上包含 Linux 內(nèi)核文件,device tree 等啟動(dòng)文件,如果是 iMX8,則還包含一些其他固件
    發(fā)表于 01-09 11:43 ?1987次閱讀
    如何使用squashfs只讀<b class='flag-5'>文件</b>系統(tǒng)制作<b class='flag-5'>Linux</b>系統(tǒng)<b class='flag-5'>文件</b>

    Linux系統(tǒng)文件比較工具集合

    Linux系統(tǒng)中,文件比較是一種常見(jiàn)的任務(wù),用于比較兩個(gè)文件之間的差異。文件比較可以幫助我們找出兩個(gè)文件的不同之處,或者確定它們
    的頭像 發(fā)表于 01-02 13:53 ?693次閱讀