1. Linux一般將文件可存取訪問(wèn)的身份分為3個(gè)類別,分別是owner、group、others,且3種身份各有read、write、execute等權(quán)限。 2. 每個(gè)賬號(hào)都可以有多個(gè)用戶組支持。 3. /etc/passwd,默認(rèn)情況下所有系統(tǒng)上的賬號(hào)與一般身份用戶還有root的相關(guān)信息,都記錄在這個(gè)文件夾中。 /etc/shadow,個(gè)人密碼記錄在這個(gè)文件夾中。 /etc/group,所有的組名記錄在這個(gè)文件夾中。 6.2 Linux文件權(quán)限概念 6.2.1 Linux文件屬性 1. $ls -al,ls是“l(fā)ist”的意思,重點(diǎn)在顯示文件的文件名與相關(guān)屬性。參數(shù)“-al”則表示列出所有的文件詳細(xì)權(quán)限與屬性(包含隱藏文件,就是文件名第一個(gè)字符為“.”的文件) 2. 顯示的每一行會(huì)有如下格式,例如: -rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log,分別表示: 權(quán)限 連接 所有者 用戶組 文件容量 修改日期 文件名 3. 權(quán)限-rw-r--r--中擁有10個(gè)字符,分別代表如下: 第1個(gè)字符代表文件的類型?!癲”代表目錄,“-”代表文件,“l(fā)”代表鏈接文件(linkfile),“b”表示設(shè)備文件里面的可供存儲(chǔ)的接口設(shè)備,“c”表示設(shè)備文件里面的串行端口設(shè)備,例如鼠標(biāo)鍵盤(一次性讀取設(shè)備)。 接 下來(lái)的字符,以3個(gè)為一組,且均為“rwx”的3個(gè)參數(shù)組合,“r”表示可讀,“w”表示可寫,“x”表示可執(zhí)行(execute),這三個(gè)權(quán)限的位置不 會(huì)改變,如果沒(méi)有權(quán)限,則以減號(hào)“-”代替。第一組為文件所有者的權(quán)限,第二組為同用戶組的權(quán)限,第三組為其他非本用戶組的權(quán)限。 4. 2.中的“鏈接”表示有多少文件鏈接到此節(jié)點(diǎn)(i-node)。每隔文件都會(huì)將它的權(quán)限與屬性記錄到文件系統(tǒng)的i-node中,每個(gè)文件都會(huì)鏈接到一個(gè)i-node。這個(gè)屬性記錄的就是有多少個(gè)不同的文件名連接到相同的一個(gè)i-node號(hào)碼。 5. 2.中的“修改日期”表示這個(gè)文件的創(chuàng)建日期或最近修改的日期。如果年份太久則只會(huì)顯示年份。想要顯示完整的時(shí)間格式,則可使用如下指令(ls的參數(shù)): $ls -l --full-time 6. 修改系統(tǒng)默認(rèn)語(yǔ)言為英文,可以管理員身份修改該系統(tǒng)配置文件/etc/sysconfig/i18n,利用nano編譯器進(jìn)行修改,LANG=en_US。 #nano /etc/sysconfig/i18n,將LANG后面改為“en_US……” 7. 對(duì)于目錄的權(quán)限如果是“-drwxr-xr--”,則others仍然不能進(jìn)入本目錄,需要有x權(quán)限才能進(jìn)入。 6.2.2如何改變文件屬性與權(quán)限 1. chgrp,改變文件所屬用戶組; chown,改變文件所有者; chmod,改變文件的權(quán)限。 2. chgrp就是change group的簡(jiǎn)稱,使用該指令時(shí),要被改變的組名必須在/etc/group文件內(nèi)存在才行。 #chgrp [-R] group filename(or dirname),其中R表示進(jìn)行遞歸(recursive)的持續(xù)更改,也即連同子目錄下的所有文件、目錄。所以當(dāng)修改一個(gè)目錄中所有文件的用戶組(所有者與權(quán)限也一樣)時(shí),要加上-R。 例如將文件install.log改到users用戶組 $chgrp users install.log 3. chown就是change owner的簡(jiǎn)稱。 #chown [-R] user filename(or dirname),改變file的文件所有者為user。 #chown [-R] .group filename(or dirname),改變file的用戶組為group(注意加點(diǎn))。 #chown [-R] user.group filename(or dirname),改變file的文件所有者為user,用戶組為group。為避免“.”引起的系統(tǒng)誤判,通常用一下命令表示該句: 4. 復(fù)制文件給其他人,復(fù)制命令: $cp [-option] [source file or dir] [target file or dir] 復(fù)制行為(cp)會(huì)復(fù)制執(zhí)行者的屬性與權(quán)限,所以即使復(fù)制到他人用戶組仍然無(wú)法使用,所以這時(shí)必須修改該權(quán)限。 5. chmod就是change mode bits的簡(jiǎn)稱。 數(shù)字類型改變文件權(quán)限: #chmod [-R] xyz fileordir,其中x代表owner權(quán)限,y代表group權(quán)限,z代表others權(quán)限。 r=4,w=2,x=1,上面三種身份的權(quán)限是r+w+x的和,如果沒(méi)有相應(yīng)的權(quán)限,則值為0。 例如:install.log文件,owner=rwx=4+2+1=7,group=rwx=4+2+1=7,others=---=0+0+0=0,所以這個(gè)文件的將改變權(quán)限值為770: #chmod 770 install.log。 6. 符號(hào)類型改變文件權(quán)限 我們可以用u,g,o三個(gè)參數(shù)來(lái)代表user,group,others 3種身份的權(quán)限。 a代表all,也即全部的身份。 讀寫的權(quán)限就可以寫成r,w,x。 +,-,=分別代表加入,出去,設(shè)置一個(gè)權(quán)限。 加入要設(shè)置一個(gè)文件的權(quán)限成“-rwxr-xr-x,指令為: #chmod u=rwx,go=rx filename,注意加上那個(gè)逗號(hào)。 要給一個(gè)文件的全部身份加上x權(quán)限,則指令為: #chmod a+x filename。 6.2.3 目錄與文件的權(quán)限意義 1. 權(quán)限對(duì)文件的作用: 文件是實(shí)際含有數(shù)據(jù)的地方,包括一般文本文件、數(shù)據(jù)庫(kù)內(nèi)容文件、二進(jìn)制可執(zhí)行文件(binary program)等。 r(read):可讀取此文件實(shí)際內(nèi)容。 w(write):可以編輯、新增或者是修改該文件的內(nèi)容(不能刪除該文件)。 x(execute):可以被系統(tǒng)執(zhí)行。 2. 權(quán)限對(duì)目錄的作用: r(read contemts in directory)可讀取目錄結(jié)構(gòu)列表,可利用ls命令將該目錄結(jié)構(gòu)列表中的文件名顯示出來(lái)(僅能顯示文件名)。 w(modify contents of directory)可更改目錄結(jié)構(gòu)列表,如新建、刪除、重命名、轉(zhuǎn)移文件或目錄。 x(access directory)可進(jìn)入該目錄成為工作目錄(就是目前所在的目錄),當(dāng)?shù)顷慙inux時(shí)所在的~(即主文件夾)就是當(dāng)前工作目錄。 3. 工作目錄對(duì)于命令的執(zhí)行非常重要,如果對(duì)一個(gè)目錄不具有x權(quán)限,則無(wú)法使該目錄稱為工作目錄,也就無(wú)法執(zhí)行該目錄下的任何命令。 要開(kāi)放目錄給任何人瀏覽時(shí),應(yīng)該至少給予r和x的權(quán)限,但w的權(quán)限不可以隨便給。 4. 如果具有對(duì)一個(gè)目錄的w權(quán)限,那么該目錄下的任何文件都可以刪除,不管要?jiǎng)h除的文件的所有者和用戶組是什么。 5. #cd /tmp,切換工作目錄到/tmp #mkdir testing,在以上目錄下建立testing文件夾 #chmod 744 testing,更改以上創(chuàng)建的testing文件夾的權(quán)限為drwxr--r-- #touch testing/testing1,在testing文件夾中新建空的文件testing1 #ls -ald testing testing/testing1,列出上面創(chuàng)建的文件夾和文件的信息(ls的-a參數(shù)表示all,即顯示所有文件,包括隱藏文件;-l參數(shù)表示 long,顯示長(zhǎng)信息格式,即顯示用戶組,所有者,修改日期等等;-d參數(shù)表示將目錄象文件一樣顯示,而不是顯示其下的文件)。 可以看到testing目錄,和testing1文件的所有者和用戶組都是root。 下面來(lái)用自己的賬號(hào)進(jìn)行一些操作。 6. #su - SF_Chipan,切換身份成為SF_Chipan $cd /tmp,進(jìn)入/tmp成為工作目錄 $ls -l testing,列出testing目錄中的內(nèi)容,因?yàn)閯偛旁?.中設(shè)置了testing目錄對(duì)others的權(quán)限為r,所以這里就會(huì)顯示文件名為testing1的文件,其他都是問(wèn)號(hào)。 $cd tesing,這時(shí)候因?yàn)镾F_Chipan身份對(duì)testing目錄的權(quán)限只是r,沒(méi)有x,所以不能使testing成為工作目錄。 7. 使用“su - ”登陸的賬戶,當(dāng)使用$exit退出時(shí),是退回使用“su - ”之前的賬戶。如果使用“su - ”登陸root賬戶,需要提供密碼,而root賬戶登陸到一般賬戶,則不需要提供密碼。 8. 可以是用rm命令刪除testing1文件: #cd /tmp/testing #rm testing1 6.2.4 Linux文件種類與擴(kuò)展名 1. 文件種類: 普通文件(regular file):[-] 純文本文件(ASCⅡ):Linux中最多的一種文件類型??梢詧?zhí)行下列命令來(lái)查看一個(gè)隱藏文件: $cat ~/.bashrc,cat是將一個(gè)文件內(nèi)容讀出來(lái)的命令。 二進(jìn)制文件(binary):Linux中的可執(zhí)行文件就是這種格式的(scripts、文字批處理文件不算),.bashrc就是這種格式。 目錄(directory):[d] 鏈接文件(link):[l],有點(diǎn)類似windows下的快捷方式。 設(shè) 備與設(shè)備文件(device)通常分為一下兩種:塊(block)設(shè)備文件,[ d],就是一些存儲(chǔ)數(shù)據(jù)以提供系統(tǒng)隨機(jī)訪問(wèn)的接口設(shè)備,如硬盤等??梢噪S機(jī)地在硬盤的不同塊讀寫,這種設(shè)備就是成組設(shè)備;字符(character)設(shè)備 文件,就是一些串行端口的接口設(shè)備,如鍵盤鼠標(biāo),特點(diǎn)是“一次性讀取”,不能夠階段輸出,比如鼠標(biāo)不可能跳到另一個(gè)地方,只能劃過(guò)去。 套接字(sockets):[s],通常被用在網(wǎng)絡(luò)上的數(shù)據(jù)連接。我們可以啟動(dòng)一個(gè)程序來(lái)監(jiān)聽(tīng)客戶端的請(qǐng)求,而客戶端就可以通過(guò)這個(gè)socket來(lái)進(jìn)行書序的通信。通常在/var/run這個(gè)目錄中就能看到。 管道(FIFO,pipe):[p],主要目的在解決多一個(gè)程序同時(shí)訪問(wèn)一個(gè)文件所造成的錯(cuò)誤問(wèn)題。FIFO是first-in-first-out的縮寫。 上面的套接字和管道都與進(jìn)程比較有關(guān),可以通過(guò)man fifo及man socket來(lái)查閱。 2. 一個(gè)Linux文件能不能被執(zhí)行,與它的第一列的10個(gè)屬性有關(guān),與文件名一點(diǎn)關(guān)系都沒(méi)有。 3. x權(quán)限代表這個(gè)文件具有可執(zhí)行的能力,但能不能執(zhí)行成功,要看該文件的內(nèi)容。 4. 我們希望可以通過(guò)擴(kuò)展名了解該文件時(shí)什么東西,所以還是會(huì)使用適當(dāng)?shù)臄U(kuò)展名來(lái)表示該文件是什么種類的。 5. *.sh:腳本或批處理文件(scripts),因?yàn)榕幚砦募胹hell寫成的,所以擴(kuò)展名就是.sh。 *Z、*.tar、*tar.gz、*zip、*.tgz:經(jīng)過(guò)打包的壓縮文件。由于不同的壓縮軟件而取其相關(guān)的擴(kuò)展名。 *.html、*.php:網(wǎng)頁(yè)相關(guān)文件,分別代表HTML語(yǔ)法與PHP語(yǔ)法的網(wǎng)頁(yè)文件。.html的文件可以使用網(wǎng)頁(yè)瀏覽器來(lái)直接啟動(dòng);.php的文件,可以通過(guò)客戶端的瀏覽器來(lái)服務(wù)端瀏覽,以得到運(yùn)算后的網(wǎng)頁(yè)結(jié)果。 6. 從網(wǎng)絡(luò)上傳送到你的Linux系統(tǒng)中,文件的屬性與權(quán)限可能是會(huì)改變的。 7. 在Linux下,使用默認(rèn)的Ext2/Ext3文件系統(tǒng)時(shí),針對(duì)文件的文件名長(zhǎng)度限制為:?jiǎn)我晃募蚰夸浀淖畲笕菰S文件名為255個(gè)字符;包含完整路徑名稱及目錄(/)的完整文件名為4096個(gè)字符。 8. 由于Linux在文字界面下的一些命令操作的關(guān)系,在設(shè)置文件名時(shí),最好能避免一些特殊的字符,如:*?><;&![]|\'"`(){}。 |
|