鳥哥linux私房菜_筆記_Linux的文件權(quán)限與目錄配置

5.1 使用者與群組

1. 文件擁有者:

2. 群組概念:

3. 其他人的概念:

Linux 使用者身份與群組記錄的文件

默認(rèn)的情況下,所有的系統(tǒng)上的帳號與一般身份使用者,還有那個(gè)root的相關(guān)信息, 都是記錄在/etc/passwd這個(gè)文件內(nèi)的。

至于個(gè)人的密碼則是記錄在/etc/shadow這個(gè)文件下。

Linux所有的群組名稱都紀(jì)錄在/etc/group內(nèi)!

這三個(gè)文件可以說是Linux系統(tǒng)里面帳號、密碼、群組信息的集中地!

5.2 Linux 文件權(quán)限概念

1、文件屬性

第一欄代表這個(gè)文件的類型與權(quán)限(permission):

第一個(gè)字符代表這個(gè)文件是“目錄、文件或鏈接文件等等”:

當(dāng)為[ d ]則是目錄,例如上表文件名為“.config”的那一行;

當(dāng)為[ - ]則是文件,例如上表文件名為“initial-setup-ks.cfg”那一行;

若是[ l ]則表示為鏈接文件(link file);

若是[ b ]則表示為設(shè)備文件里面的可供儲(chǔ)存的周邊設(shè)備(可隨機(jī)存取設(shè)備);

若是[ c ]則表示為設(shè)備文件里面的序列埠設(shè)備,例如鍵盤、鼠標(biāo)(一次性讀取設(shè)備)。

接下來的字符中,以三個(gè)為一組,且均為“rwx” 的三個(gè)參數(shù)的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執(zhí)行(execute)。

第一組為“文件擁有者可具備的權(quán)限”,以“initial-setup-ks.cfg”那個(gè)文件為例, 該文件的擁有者可以讀寫,但不可執(zhí)行;

第二組為“加入此群組之帳號的權(quán)限”;

第三組為“非本人且沒有加入本群組之其他帳號的權(quán)限”。

---------------------------------------------------------------------------------------------------------

第二欄表示有多少文件名鏈接到此節(jié)點(diǎn)(i-node):

每個(gè)文件都會(huì)將他的權(quán)限與屬性記錄到文件系統(tǒng)的i-node中,不過,我們使用的目錄樹卻是使用文件名來記錄, 因此每個(gè)文件名就會(huì)鏈接到一個(gè)i-node。

這個(gè)屬性記錄的,就是有多少不同的文件名鏈接到相同的一個(gè)i-node號碼去就是了。

-----------------------------------------------------------------------------------------------------------

第三欄表示這個(gè)文件(或目錄)的“擁有者帳號”

第四欄表示這個(gè)文件的所屬群組

第五欄為這個(gè)文件的容量大小,默認(rèn)單位為Bytes;

第六欄為這個(gè)文件的創(chuàng)建日期或者是最近的修改日期:

這一欄的內(nèi)容分別為日期(月/日)及時(shí)間。如果這個(gè)文件被修改的時(shí)間距離現(xiàn)在太久了,那么時(shí)間部分會(huì)僅顯示年份而已。


如果想要顯示完整的時(shí)間格式,可以利用ls的選項(xiàng),亦即:“l(fā)s -l --full-time”就能夠顯示出完整的時(shí)間格式了!包括年、月、日、時(shí)間。

-----------------------------------------------------------------------------------------------------------------------

第七欄為這個(gè)文件的文件名

這個(gè)字段就是文件名了。比較特殊的是:如果文件名之前多一個(gè)“ . ”,則代表這個(gè)文件為“隱藏文件”,例如上表中的.config那一行,該文件就是隱藏文件。 你可以使用“l(fā)s”及“l(fā)s -a”這兩個(gè)指令去感受一下什么是隱藏文件。

2、如何改變文件屬性與權(quán)限

chgrp :改變文件所屬群組

chown :改變文件擁有者

chmod :改變文件的權(quán)限, SUID, SGID, SBIT等等的特性

改變所屬群組, chgrp

改變一個(gè)文件的群組:

直接以chgrp來改變即可,不過,請記得,要被改變的群組名稱必須要在/etc/group文件內(nèi)存在才行,否則就會(huì)顯示錯(cuò)誤!


改變文件擁有者, chown

要注意的是, 使用者必須是已經(jīng)存在系統(tǒng)中的帳號,也就是在/etc/passwd 這個(gè)文件中有紀(jì)錄的使用者名稱才能改變。

chown的用途還滿多的,他還可以順便直接修改群組的名稱呢!此外,如果要連目錄下的所有次目錄或文件同時(shí)更改文件擁有者的話,直接加上 -R 的選項(xiàng)即可!語法與范例:


chown也可以使用“chown user.group file”,亦即在擁有者與群組間加上小數(shù)點(diǎn)“ . ”也行! 不過很多朋友設(shè)置帳號時(shí),喜歡在帳號當(dāng)中加入小數(shù)點(diǎn)(例如vbird.tsai這樣的帳號格式),這就會(huì)造成系統(tǒng)的誤判了! 所以比較建議使用冒號“:”來隔開擁有者與群組!此外,chown也能單純的修改所屬群組! 例如“chown .sshd initial-setup-ks.cfg”就是修改群組~看到了嗎?就是那個(gè)小數(shù)點(diǎn)的用途!

******************************************************************************************************************************

改變權(quán)限, chmod

數(shù)字類型改變文件權(quán)限:

文件權(quán)限的改變使用的是chmod這個(gè)指令,但是,權(quán)限的設(shè)置方法有兩種, 分別可以使用數(shù)字或者是符號來進(jìn)行權(quán)限的變更。


----------------------------------------------------------------------------------------------------------------------------

符號類型改變文件權(quán)限:

九個(gè)權(quán)限分別是

(1)user (2)group (3)others三種身份 !

我們就可以借由u, g, o來代表三種身份的權(quán)限!此外, a 則代表 all 亦即全部的身份!那么讀寫的權(quán)限就可以寫成r, w, x


“設(shè)置”一個(gè)文件的權(quán)限成為“-rwxr-xr-x”時(shí),基本上就是:

user (u):具有可讀、可寫、可執(zhí)行的權(quán)限;

group 與 others (g/o):具有可讀與執(zhí)行的權(quán)限。 所以就是:


那么假如是“ -rwxr-xr-- ”這樣的權(quán)限呢?可以使用“ chmod u=rwx,g=rx,o=r filename ”來設(shè)置。此外,如果我不知道原先的文件屬性,而我只想要增加.bashrc這個(gè)文件的每個(gè)人均可寫入的權(quán)限, 那么我就可以使用:


而如果是要將權(quán)限去掉而不更動(dòng)其他已存在的權(quán)限呢?例如要拿掉全部人的可執(zhí)行權(quán)限,則:


************************************************************************************************************************************

3、目錄與文件之權(quán)限意義:

權(quán)限對文件的重要性:

文件是實(shí)際含有數(shù)據(jù)的地方,包括一般文本文件、數(shù)據(jù)庫內(nèi)容檔、二進(jìn)制可可執(zhí)行文件(binary program)等等。 因此,權(quán)限對于文件來說,他的意義是這樣的:

r (read):可讀取此一文件的實(shí)際內(nèi)容,如讀取文本文件的文字內(nèi)容等;

w (write):可以編輯、新增或者是修改該文件的內(nèi)容(但不含刪除該文件);

x (eXecute):該文件具有可以被系統(tǒng)執(zhí)行的權(quán)限。

那個(gè)可讀(r)代表讀取文件內(nèi)容是還好了解,那么可執(zhí)行(x)呢?這里你就必須要小心啦!因?yàn)樵赪indows下面一個(gè)文件是否具有執(zhí)行的能力是借由“ 擴(kuò)展名 ”來判斷的, 例如:.exe,.bat, .com 等等,但是在Linux下面,我們的文件是否能被執(zhí)行,則是借由是否具有“x”這個(gè)權(quán)限來決定的!跟文件名是沒有絕對的關(guān)系的!

至于最后一個(gè)w這個(gè)權(quán)限呢?當(dāng)你對一個(gè)文件具有w權(quán)限時(shí),你可以具有寫入/編輯/新增/修改文件的內(nèi)容的權(quán)限, 但并不具備有刪除該文件本身的權(quán)限!對于文件的rwx來說, 主要都是針對“文件的內(nèi)容”而言,與文件文件名的存在與否沒有關(guān)系喔!因?yàn)槲募涗浀氖菍?shí)際的數(shù)據(jù)!

權(quán)限對目錄的重要性:

目錄主要的內(nèi)容在記錄文件名清單,文件名與目錄有強(qiáng)烈的關(guān)連啦! 所以如果是針對目錄時(shí),那個(gè) r, w, x 對目錄是什么意義呢?

r (read contents in directory):

表示具有讀取目錄結(jié)構(gòu)清單的權(quán)限,所以當(dāng)你具有讀?。╮)一個(gè)目錄的權(quán)限時(shí),表示你可以查詢該目錄下的文件名數(shù)據(jù)。 所以你就可以利用 ls 這個(gè)指令將該目錄的內(nèi)容列表顯示出來!

--------------------------------------------------------------------------------------------

w (modify contents of directory):

這個(gè)可寫入的權(quán)限對目錄來說,表示你具有異動(dòng)該目錄結(jié)構(gòu)清單的權(quán)限,也就是下面這些權(quán)限:

創(chuàng)建新的文件與目錄;

刪除已經(jīng)存在的文件與目錄(不論該文件的權(quán)限為何?。?/p>

將已存在的文件或目錄進(jìn)行更名;

搬移該目錄內(nèi)的文件、目錄位置。

總之,目錄的w權(quán)限就與該目錄下面的文件名異動(dòng)有關(guān)!

-----------------------------------------------------------------------------------------------

x (access directory):

目錄的x代表的是使用者能否進(jìn)入該目錄成為工作目錄的用途!

所謂的工作目錄(work directory)就是你目前所在的目錄!

舉例來說,當(dāng)你登陸Linux時(shí), 你所在的主文件夾就是你當(dāng)下的工作目錄。而變換目錄的指令是“cd”(change

directory)!


先用root的身份創(chuàng)建所需要的文件與目錄環(huán)境


一般用戶的讀寫權(quán)限為:

目錄是744的權(quán)限設(shè)置,一般用戶應(yīng)該能有 r 的權(quán)限, 但這樣的權(quán)限使用者能做啥事呢?


如果該目錄屬于用戶本身,會(huì)有什么狀況?


x 在目錄當(dāng)中是與“能否進(jìn)入該目錄”有關(guān),至于那個(gè) w 則具有相當(dāng)重要的權(quán)限,因?yàn)樗梢宰屖褂谜邉h除、更新、新建文件或目錄, 是

個(gè)很重要的參數(shù)

使用者操作功能與權(quán)限:

假設(shè)兩個(gè)文件名,分別是下面這樣:

/dir1/file1

/dir2

假設(shè)你現(xiàn)在在系統(tǒng)使用 dmtsai 這個(gè)帳號,那么這個(gè)帳號針對 /dir1, /dir1/file1, /dir2 這三個(gè)文件名來說,分別需要“哪些最小的權(quán)限”才能達(dá)成各項(xiàng)任務(wù)?


*******************************************************************************************

4、linux文件種類與擴(kuò)展名

文件種類:

正規(guī)文件

純文本文件(ASCII)

二進(jìn)制檔(binary)

數(shù)據(jù)格式文件(data):有些程序在運(yùn)行的過程當(dāng)中會(huì)讀取某些特定格式的文件,Linux在使用者登陸時(shí),都會(huì)將登錄的數(shù)據(jù)記錄在

/var/log/wtmp那個(gè)文件內(nèi),該文件是一個(gè)data file,他能夠通過last這個(gè)指令讀出來! 但是使用cat時(shí),會(huì)讀出亂碼~因?yàn)樗菍儆?/p>

一種特殊 格式的文件

目錄(directory):第一個(gè)屬性為 [ d ]

鏈接文件(link):第一個(gè)屬性為 [ l ]

設(shè)備與設(shè)備文件(device):

區(qū)塊(block)設(shè)備文件:查一下/dev/sda看看, 會(huì)發(fā)現(xiàn)第一個(gè)屬性為[ b ]

字符(character)設(shè)備文件:第一個(gè)屬性為 [ c ]

數(shù)據(jù)接口文件(sockets):第一個(gè)屬性為[ s ],最常在/run或/tmp這些個(gè)目錄中看到這種文件類型.

數(shù)據(jù)輸送檔(FIFO, pipe):FIFO也是一種特殊的文件類型,他主要的目的在解決多個(gè)程序同時(shí)存取一個(gè)文件所造成的錯(cuò)誤問題。 FIFO是first-in-first-out的縮寫。第一個(gè)屬性為[p] 。

---------------------------------------------------------------------------------------------------------------------------------

Linux文件擴(kuò)展名:

x代表這個(gè)文件具有可執(zhí)行的能力, 但是能不能執(zhí)行成功,當(dāng)然就得要看該文件的內(nèi)容.

通常我們還是會(huì)以適當(dāng)?shù)臄U(kuò)展名來表示該文件是什么種類的

*.sh : 腳本或批處理文件 (scripts),因?yàn)榕幚砦募槭褂胹hell寫成的,所以擴(kuò)展名就編成 .sh

Z, .tar, .tar.gz, .zip, *.tgz: 經(jīng)過打包的壓縮文件。這是因?yàn)閴嚎s軟件分別為 gunzip, tar等等的,由于不同的壓縮軟件,而取其相關(guān)的擴(kuò)展名

.html, .php:網(wǎng)頁相關(guān)文件,分別代表 HTML 語法與 PHP 語法的網(wǎng)頁文件啰!

5.3 Linux 目錄配置


1、Linux目錄配置的依據(jù)--FHS

FHS針對目錄樹架構(gòu)僅定義出三層目錄下面應(yīng)該放置什么數(shù)據(jù)而已,分別是下面這三個(gè)目錄的定義:

/ (root, 根目錄):與開機(jī)系統(tǒng)有關(guān);

/usr (unix software resource):與軟件安裝/執(zhí)行有關(guān);

/var (variable):與系統(tǒng)運(yùn)行過程有關(guān)。

usr是Unix Software Resource的縮寫, 也就是“Unix操作系統(tǒng)軟件資源”所放置的目錄

2、目錄樹 (directory tree)

主要的特性有:

目錄樹的啟始點(diǎn)為根目錄 (/, root);

每一個(gè)目錄不止能使用本地端的 partition 的文件系統(tǒng),也可以使用網(wǎng)絡(luò)上的 filesystem。舉例來說, 可以利用 Network File System (NFS) 服務(wù)器掛載某特定目錄等。

每一個(gè)文件在此目錄樹中的文件名(包含完整路徑)都是獨(dú)一無二的。

CentOS在根目錄下面會(huì)有什么樣子的數(shù)據(jù)?


3、絕對路徑與相對路徑

根據(jù)文件名寫法的不同,也可將所謂的路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。 這兩種文件名/路徑的寫法依據(jù)是這樣的:

絕對路徑:由根目錄(/)開始寫起的文件名或目錄名稱, 例如 /home/dmtsai/.bashrc;

相對路徑:相對于目前路徑的文件名寫法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正開頭不是 / 就屬于相對路徑的寫法

4、CentOS 的觀察

Linux distribution 的差異性, 除了 FHS 之外,還有個(gè) Linux StandardBase (LSB) 的標(biāo)準(zhǔn)是可以依循。


重點(diǎn)回顧:

要開放目錄給任何人瀏覽時(shí),應(yīng)該至少也要給予r及x的權(quán)限,但w權(quán)限不可隨便給;

能否讀取到某個(gè)文件內(nèi)容,跟該文件所在的目錄權(quán)限也有關(guān)系 (目錄至少需要有 x 的權(quán)限)

請問下面的目錄與主要放置什么數(shù)據(jù): /etc/, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev,

/var/log, /run

/etc/:幾乎系統(tǒng)的所有設(shè)置文件均在此,尤其 passwd,shadow

/boot:開機(jī)配置文件,也是默認(rèn)擺放核心 vmlinuz 的地方

/usr/bin, /bin:一般可執(zhí)行文件擺放的地方

/usr/sbin, /sbin:系統(tǒng)管理員常用指令集

/dev:擺放所有系統(tǒng)設(shè)備文件的目錄

/var/log:擺放系統(tǒng)登錄文件的地方

/run:CentOS 7 以后才有,將經(jīng)常變動(dòng)的項(xiàng)目(每次開機(jī)都不同,如程序的PID)移動(dòng)到內(nèi)存暫存,所以 /run 并不占實(shí)際磁盤容量

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容