Linux 档案权限概念
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1.Linux 的檔案屬性
在你以 root 的身份登入 Linux 之后,下達(dá)『ls -al 』看看,會(huì)看到底下的幾個(gè)咚咚:
[root@linux ~]# ls -al
total 248
drwxr-x---? ????9 ???? root ????root ????4096 ????Jul 11 14:58 ????.
drwxr-xr-x ????24 ????root ????root ????4096 ????Jul 9 17:25 ????? ..
-rw------- ???? 1 ????? root ????root ????1491 ????Jun 25 08:53? ? anaconda-ks.cfg
-rw-r--r-- ???? 1???? ? root ???? root ????24 ??????? Dec 4 2004???? .bash_logout
drwx------ ????3??? ?? root ???? root ????4096???? Jun 25 08:35 ? .ssh
? [ 1 ]????????????[ 2 ]???? [ 3 ]????? [ 4 ]????? [ 5 ]????????????[ 6 ]????????????[ 7 ]
[ 屬性 ]????????[連結(jié)] [擁有者] [群組] [檔案容量] [ 修改日期 ]????? [ 檔名 ]
[ 1 ]?. 第一欄代表這個(gè)檔案的屬性, 這一欄其實(shí)共有十個(gè)屬性:
??? ?????????????????????????????????????????
o 第一個(gè)屬性代表這個(gè)檔案是『目錄、文件或連結(jié)文件等等』:
- ?當(dāng)為[ d ]則是目錄;
- ?當(dāng)為[ - ]則是文件;
- ?若是[ l ]則表示為連結(jié)檔(link file);
- ?若是[ b ]則表示為裝置文件里面的可供儲(chǔ)存的接口設(shè)備;
- ?若是[ c ]則表示為裝置文件里面的串行端口設(shè)備,例如鍵盤、鼠標(biāo)。
o 接下來(lái)的屬性中,三個(gè)為一組,且均為『rwx』 的三個(gè)參數(shù)的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執(zhí)行(excute):
- ?第一組為『擁有人的權(quán)限』;
- ?第二組為『同群組的權(quán)限』;
- ?第三組為『其它非本群組的權(quán)限』。
范例:若有一個(gè)檔案的屬性為『-rwxr-xr--』,簡(jiǎn)單的可由下面說(shuō)明之:
[-][rwx][r-x][r--]
1 234 567 890
1 為:代表這個(gè)文件名為目錄或檔案(上面為文件)
234為:擁有人的權(quán)限(上面為可讀、可寫、可執(zhí)行)
567為:同群組使用者權(quán)限(上面為可讀可執(zhí)行)
890為:其它使用者權(quán)限(上面為僅可讀)
上面的屬性情況代表一個(gè)檔案、這個(gè)檔案的擁有人可讀可寫可執(zhí)行、但同群組的人僅可讀與執(zhí)行, 非同群組的使用者僅可讀的意思!
[ 2 ]?. 第二欄代表連結(jié)占用的節(jié)點(diǎn)(i-node):這個(gè)跟連結(jié)檔(line file)比較有關(guān)系,如果是目錄的話,那么就與該目錄下還有多少目錄有關(guān)。
[ 7 ] .第七欄為這個(gè)檔案的檔名, 如果檔名之前多一個(gè)『 . 』,則代表這個(gè)檔案為『隱藏檔』。
如何改變檔案權(quán)限
其實(shí)一個(gè)檔案的權(quán)限很多嘛!大致上我們先介紹幾個(gè)簡(jiǎn)單的,例如:群組、擁有者、各種身份的權(quán)限等等。
????chgrp:改變檔案所屬群組
????chown:改變檔案所有人
????chmod:改變檔案的屬性、SUID等等特性
?改變檔案的屬性,chmod
- 數(shù)字類型改變檔案屬性
????????????r:4????w:2 ????x:1
????????????例如:rwx = 4+2+1 = 7
????????? ????????????? --- = 0+0+0 = 0
????????????????????????[root@localhost~]# chmod -R 777 .bashrc 開(kāi)放.bashrc目錄所有屬性
- 符號(hào)類型改變檔案權(quán)限
????????????
????????????[root@linux ~]# chmod u=rwx,go=rx .bashrc?
????????????[root@linux ~]# chmod u=rwx,g=rx,o=r .bashrc
2.Linux 的目錄的屬性
r (read contents in directory):表示具有讀取目錄結(jié)構(gòu)清單的權(quán)限,所以當(dāng)您具有讀取(r)一個(gè)目錄的權(quán)限時(shí),您就可以用ls這個(gè)指令將該目錄的內(nèi)容列表顯示出來(lái)。
w (modify contents of directory): 表示您將具有改動(dòng)該目錄結(jié)構(gòu)清單的權(quán)限,即具有以下這些權(quán)限:
????o 建立新的檔案與目錄;
????o 刪除已經(jīng)存在的檔案與目錄(無(wú)論該檔案是屬于誰(shuí)的);
????o 將已存在的檔案或目錄進(jìn)行更名;
????o 搬移該目錄內(nèi)的檔案、目錄位置。
x (access directory): 與能否進(jìn)入該目錄有關(guān)。
Linux 的檔案種類:
正規(guī)檔案 (regular file ): 就是一般我們?cè)谶M(jìn)行存取的類型的檔案,在由 ls –al 所顯示出來(lái)的屬性方面,第一個(gè)屬性為 [ - ],例如 [-rwxrwxrwx ]。另外,依照檔案的內(nèi)容,又大略可以分為:
o 純文字文件(ASCII):這是 Unix 系統(tǒng)中最多的一種檔案類型啰,稱為純文字文件是因?yàn)閮?nèi)容為我們?nèi)祟惪梢灾苯幼x到的數(shù)據(jù), 例如數(shù)字、字母等等。幾乎只要我們可以用來(lái)做為設(shè)定的檔案都屬于這一種檔案類型。 舉例來(lái)說(shuō),您可以下達(dá)『 cat ~/.bashrc 』就可以看到該檔案的內(nèi)容。 (cat 是將一個(gè)檔案內(nèi)容讀出來(lái)的指令)
o 二進(jìn)制文件(binary): 我們的系統(tǒng)其實(shí)僅認(rèn)識(shí)且可以執(zhí)行二進(jìn)制檔案 (binary file)的,? 您的 Linux 當(dāng)中的可執(zhí)行檔 (scripts, 文字型批次文件不算) 就是這種格式的啦~ 舉例來(lái)說(shuō),剛剛下達(dá)的指令 cat 就是一個(gè) binary file 。
o 數(shù)據(jù)格式文件(data): 有些程序在運(yùn)作的過(guò)程當(dāng)中會(huì)讀取某些特定格式的檔案,那些特定格式的檔案可以被稱為數(shù)據(jù)文件 (data file)。舉例來(lái)說(shuō),我們的 Linux 在使用者登入時(shí),都會(huì)將登錄的數(shù)據(jù)記錄在 /var/log/wtmp 那個(gè)檔案內(nèi),該檔案是一個(gè) data file ,他能夠透過(guò) last 這個(gè)指令讀出來(lái)! 但是使用 cat 時(shí),會(huì)讀出亂碼~因?yàn)樗菍儆谝环N特殊格式的檔案。
目錄 (directory):就是目錄啰~第一個(gè)屬性為 [ d ],例如 [drwxrwxrwx]。
連結(jié)檔 (link):就是類似 Windows 底下的快捷方式啦!第一個(gè)屬性為 [ l ], 例如 [lrwxrwxrwx] ;你可以將 linux 下的連結(jié)檔簡(jiǎn)單的視為一個(gè)檔案或目錄的快捷方式。
設(shè)備與裝置文件 (device):與系統(tǒng)周邊及儲(chǔ)存等相關(guān)的一些檔案, 通常都集中在 /dev 這個(gè)目錄之下!通常又分為兩種:
o 區(qū)塊 (block) 設(shè)備檔 :就是一些儲(chǔ)存數(shù)據(jù), 以提供系統(tǒng)存取的接口設(shè)備,簡(jiǎn)單的說(shuō)就是硬盤啦!例如你的一號(hào)硬盤的代碼是 /dev/hda1 等等的檔案啦!第一個(gè)屬性為 [ b ];
o 字符 (character) 設(shè)備檔 :亦即是一些串行端口的接口設(shè)備, 例如鍵盤、鼠標(biāo)等等!第一個(gè)屬性為 [ c ]。
資料接口文件 (sockets):既然被稱為數(shù)據(jù)接口文件, 想當(dāng)然爾,這種類型的檔案通常被用在網(wǎng)絡(luò)上的數(shù)據(jù)承接了。我們可以啟動(dòng)一個(gè)程序來(lái)監(jiān)聽(tīng)客戶端的要求, 而客戶端就可以透過(guò)這個(gè) socket 來(lái)進(jìn)行數(shù)據(jù)的溝通了。第一個(gè)屬性為 [ s ], 最常在 /var/run 這個(gè)目錄中看到這種檔案類型了。
數(shù)據(jù)輸送文件 (FIFO, pipe): FIFO 也是一種特殊的檔案類型,他主要的目的在解決多個(gè)程序同時(shí)存取一個(gè)檔案所造成的錯(cuò)誤問(wèn)題。 FIFO 是 first-in-first-out 的縮寫。第一個(gè)屬性為 [p] 。
Linux 檔案附檔名:
*.sh : 批次檔 ( scripts ),因?yàn)榕螜n為使用 shell 寫成的,所以附檔名就編成 .sh 啰;
*Z, *.tar, *.tar.gz, *.zip, *.tgz: 經(jīng)過(guò)打包的壓縮檔。這是因?yàn)閴嚎s軟件分別為 gunzip, tar 等等的,由于不同的壓縮軟件,而取其相關(guān)的附檔名啰!
*.html, *.php:網(wǎng)頁(yè)相關(guān)檔案,分別代表 HTML 語(yǔ)法與 PHP 語(yǔ)法的網(wǎng)頁(yè)檔案啰! .html 的檔案可使用網(wǎng)頁(yè)瀏覽器來(lái)直接開(kāi)啟,至于 .php 的檔案, 則可以透過(guò) client 端的瀏覽器來(lái) server 端瀏覽,以得到運(yùn)算后的網(wǎng)頁(yè)結(jié)果呢!
Linux 目錄配置的依據(jù) FHS(Filesystem Hierarchy Standard)標(biāo)準(zhǔn)
FHS 定義出兩層規(guī)范出來(lái),第一層是 根目錄 ( / ) 底下的各個(gè)目錄應(yīng)該要放置什么樣內(nèi)容的檔案數(shù)據(jù),例如 /etc 應(yīng)該要放置設(shè)定檔, /bin 與 /sbin 則應(yīng)該要放置可執(zhí)行檔等等。第二層則是針對(duì) /usr 及 /var 這兩個(gè)目錄的次目錄來(lái)定義的。 例如 /var/log 放置系統(tǒng)登錄文件、 /usr/share 放置共享數(shù)據(jù)等等。
在 Linux 底下,所有的檔案與目錄都是由根目錄 / 開(kāi)始的!那是所有目錄與檔案的源頭~ 然后再一個(gè)一個(gè)的分支下來(lái),有點(diǎn)像是樹(shù)枝狀啊~因此,我們也稱這種目錄配置方式為:『目錄樹(shù) (directory tree)』 這個(gè)目錄樹(shù)有什么特性呢?他主要的特性有:
? 目錄樹(shù)的啟始點(diǎn)為根目錄 (/, root);
? 每一個(gè)目錄不止能使用本地端的 partition 的檔案系統(tǒng),也可以使用網(wǎng)絡(luò)上的 filesystem 。舉例來(lái)說(shuō), 可以利用 Network File System (NFS) 服務(wù)器掛載某特定目錄等。
? 每一個(gè)檔案在此目錄樹(shù)中的文件名(包含完整路徑)都是獨(dú)一無(wú)二的。
絕對(duì)路徑為:由根目錄 (/) 開(kāi)始寫起的文件名或目錄名稱, 例如 /home/dmtsai/.bashrc;相對(duì)路徑為相對(duì)于目前路徑的文件名寫法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正開(kāi)頭不是 / 就屬于相對(duì)路徑的寫法, 而您必須要了解,相對(duì)路徑是以『您當(dāng)前所在路徑的相對(duì)位置』來(lái)表示的。舉例來(lái)說(shuō),您目前在 /home 這個(gè)目錄下, 如果想要進(jìn)入 /var/log 這個(gè)目錄時(shí),可以怎么寫呢?
? cd /var/log (absolute)
? cd ../var/log (relative)
因?yàn)槟?/home 底下,所以要回到上一層 (../) 之后,才能繼續(xù)往 /var 來(lái)移動(dòng)的! 特別注意這兩個(gè)特殊的目錄:
? . :代表當(dāng)前的目錄,也可以使用 ./ 來(lái)表示;
? .. :代表上一層目錄,也可以 ../ 來(lái)代表。
這個(gè) . 與 .. 目錄概念是很重要的,您常常會(huì)看到 cd .. 或 ./command 之類的指令下達(dá)方式, 就是代表上一層與目前所在目錄的工作狀態(tài)喔!很重要的吶!此外,針對(duì)『檔名』與『完整檔名 (由 / 開(kāi)始寫起的文件名)』 的字符限制大小為:
? 單一檔案或目錄的最大容許文件名為 255 個(gè)字符;
? 包含完整路徑名稱及目錄 (/) 之完整檔名為 4096 個(gè)字符
?
轉(zhuǎn)載于:https://my.oschina.net/u/1757002/blog/860930
總結(jié)
以上是生活随笔為你收集整理的Linux 档案权限概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: robocopy file backup
- 下一篇: linux监控命令详解