文件的存取權(quán)限—模式位疑難詳解
2024-07-26 00:31:31
供稿:網(wǎng)友
一、前言
========
本文主要說(shuō)明linux下普通文件及目錄的存取權(quán)限設(shè)置。本文是為稍具基礎(chǔ)的初學(xué)者寫的(我也是beginner),如
果您能夠理解如下幾行'ls -l'命令的輸出含義(注意下面標(biāo)注^的位),那您就沒有必要讀本文了——?jiǎng)e浪費(fèi)時(shí)
間看對(duì)你沒用的東西,時(shí)間是最寶貴的!
-r-sr-xr-x 1 root bin 26975 Jun 24 1999 01:32 /usr/bin/passwd-----------1.1
^
-rwxrwSr-x 1 zyd zyd 12506 Oct 29 10:27 test_euid-----------------------1.2
^
drwxrwxrwt 5 root root 1024 Nov 1 17:17 01;34 /tmp----------------------1.3
^^^^ ^ ^
-rwxr-xr-x 2 zyd zyd 32506 Oct 19 10:20 hard_link-----------------------1.4
^
lrwxr-xr-x 1 zyd zyd 1 Oct 23 10:40 sym_link->/tmp/sym_target-----------1.5
^ ^^^^^^^^^^^^^^^
二、'ls -l'命令輸出格式簡(jiǎn)介
===========================
'ls -l'命令以長(zhǎng)格式顯示文件列表,其各字段含義如下:
lrwxr-xr-x 1 zyd users 15 Oct 23 10:40 sym_link->/tmp/sym_target
_________ ___ _____ ____________ ________ _______________
| | | | | | | | |
| | | | | | | | +--符號(hào)連接(s_link)
| | | | | | | |
| | | | | | | +-----文件名(name)
| | | | | | |
| | | | | | +----文件最后更改時(shí)間(time)
| | | | | |
| | | | | +------------以字節(jié)計(jì)的文件長(zhǎng)度(size)
| | | | |
| | | | +----------文件屬組(group)
| | | |
| | | +--------------------文件屬主(user)
| | |
| | +-------連接數(shù)位(count)
| |
| +-------文件模式位(mode),占9位
|
+------------文件類型位(type),占一位
以上9個(gè)字段中除了s_link外,其他字段對(duì)不同文件和目錄都應(yīng)該有。其中user、group、time和name的含義自
明,本文就不再介紹,其它字段將分專題小節(jié)在本文介紹。
三、文件類型(type)
Linux支持的文件類型主要包括一下7類,箭頭右面的字符就是相應(yīng)的文件類型位標(biāo)志:
1、普通文件========>-
2、目錄文件========>d
3、符號(hào)連接========>l
4、字符設(shè)備文件====>c
5、塊設(shè)備文件======>b
6、命名管道FIFO
7、套接口socket
其中FIFO和socket超出了本文的范疇,不做介紹。其它文件簡(jiǎn)單解釋如下:
1、普通文件:就是普通文件(廢話!),你用'vi myfile'建立的myfile就是普通文件,比如可執(zhí)行二進(jìn)制代碼
文件、script腳本文件、ASCII文本文件、數(shù)據(jù)文件、配置文件......就解釋到這樣行嗎?
2、目錄文件:目錄可以理解成放其它文件和/或其它目錄的容器,是一種特殊文件,其內(nèi)容由目錄項(xiàng)組成,每個(gè)
目錄項(xiàng)主要包括兩部分內(nèi)容:文件名name和索引節(jié)點(diǎn)號(hào)inode,兩者和起來(lái)稱為連接,我們將在下小節(jié)對(duì)inode
進(jìn)行更詳細(xì)的介紹。
3、設(shè)備文件:不知道諸位是否有使用DOS的經(jīng)驗(yàn),如果我們的機(jī)器只有三個(gè)DOS系統(tǒng)文件IO.SYS, MSDOS.SYS,
COMMAND.COM,而你需要編輯一份英文文檔,日后再通過(guò)打印機(jī)輸出,你能怎么辦?
COPY CON MYDOC.TXT
??;在此輸入文檔內(nèi)容
^+D??;結(jié)束存盤
COPY MYDOC.TXT > PRN??;打印文檔
如果你熟悉這個(gè)過(guò)程,那你就已經(jīng)理解設(shè)備文件了。以上的CON和PRN分別是DOS定義的兩個(gè)設(shè)備文件,分別對(duì)應(yīng)
終端和并行打印口。這種設(shè)計(jì)使我們不必了解設(shè)備使用的具體硬件細(xì)節(jié),按使用普通文件相同的方法來(lái)使用外部
設(shè)備。
Linux下的設(shè)備文件分為三大類:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備,要想準(zhǔn)確區(qū)別它們可能需要單獨(dú)寫一篇更臭更
長(zhǎng)的文章,大致情況是:字符設(shè)備是直接讀取的,不使用緩沖區(qū),象串行口、終端等;而塊設(shè)備都是通過(guò)緩沖區(qū)
進(jìn)行讀取的,并且每次只能讀取一定數(shù)量的塊,比如磁盤每次至少要讀取一個(gè)扇區(qū)(如512字節(jié)),塊設(shè)備可以實(shí)
現(xiàn)隨機(jī)讀寫;網(wǎng)絡(luò)設(shè)備即前面提到的socket,因?yàn)槲疫€不很熟悉,就不亂說(shuō)了。設(shè)備文件一般都保存在/dev目
錄下,諸位可以用ls -l命令看看都有什么?反正本文的重點(diǎn)在于介紹普通文件和目錄,設(shè)備文件不是重點(diǎn),所
以就只介紹到這里。
四、索引節(jié)點(diǎn)、硬連接和連接計(jì)數(shù)
==============================
1、索引節(jié)點(diǎn)inode:
Linux為每個(gè)文件分配一個(gè)稱為索引節(jié)點(diǎn)的號(hào)碼inode,可以將inode簡(jiǎn)單理解成一個(gè)指針,它永遠(yuǎn)指向本文件的
具體存儲(chǔ)位置。系統(tǒng)是通過(guò)索引節(jié)點(diǎn)(而不是文件名)來(lái)定位每一個(gè)文件。例如:
假設(shè)我們?cè)谟脖P當(dāng)前目錄下建立了一個(gè)名為mytext文本文件,其內(nèi)容只有一行:
This is my file.
當(dāng)然這行文字一定是存儲(chǔ)在磁盤數(shù)據(jù)區(qū)某個(gè)具體位置里(物理上要通過(guò)磁頭號(hào)、柱面號(hào)和扇區(qū)號(hào)來(lái)描述,在本例
中假設(shè)分別是1、20、30)。
假設(shè)其inode是262457,那么系統(tǒng)通過(guò)一段標(biāo)準(zhǔn)程序,就能將這個(gè)inode轉(zhuǎn)換成存放此文件的具體物理地址(1磁
頭、20柱面、30扇區(qū)),最終讀出文件的內(nèi)容:“This is my file.”
所以inode是指向一個(gè)文件數(shù)據(jù)區(qū)的指針號(hào)碼,一個(gè)inode對(duì)應(yīng)著系統(tǒng)中唯一的一片物理數(shù)據(jù)區(qū),而位于兩個(gè)不
同物理數(shù)據(jù)區(qū)的文件必定分別對(duì)應(yīng)著兩個(gè)不同的inode號(hào)碼。
文件拷貝命令:
# cp /home/zyd/mytext newfile
在當(dāng)前工作目錄建立了一個(gè)新文件newfile,其實(shí)際操作主要包括如下三步:
1、在當(dāng)前目錄中增加一個(gè)目錄項(xiàng),其文件名域填入newfile,并分配了一個(gè)新的inode,假設(shè)是262456。
2、將原文件(在1磁頭、20柱面、30扇區(qū))的內(nèi)容復(fù)制了一份到新的空閑物理塊(假設(shè)是1磁頭、20柱面、31扇
區(qū))。
3、填寫一些其他關(guān)鍵信息,使系統(tǒng)通過(guò)這些信息及inode號(hào)碼可以完成物理地址的轉(zhuǎn)換。
所以文件復(fù)制要分配新的inode和新的數(shù)據(jù)區(qū),雖然兩個(gè)文件的內(nèi)容是一樣的。
2、硬連接hardlink:
我們實(shí)際使用文件時(shí)一般是通過(guò)文件名來(lái)引用的。通過(guò)上面的討論,我們知道:1個(gè)inode號(hào)碼肯定和一片完全
屬于一個(gè)文件的數(shù)據(jù)區(qū)一一對(duì)應(yīng)。那么一個(gè)文件系統(tǒng)中兩個(gè)或更多個(gè)不同的文件名能否對(duì)應(yīng)同一個(gè)文件呢?答案
是肯定的。我們知道inode號(hào)碼是記錄在文件名對(duì)應(yīng)的目錄項(xiàng)中的,我們可以使兩個(gè)或多個(gè)文件的目錄項(xiàng)具有相
同的inode值,實(shí)際上就使它們對(duì)應(yīng)著同一個(gè)文件。有幾個(gè)目錄項(xiàng)具有相同的inode號(hào),我們就說(shuō)這個(gè)文件有幾
個(gè)硬連接(hardlink),對(duì)于普通文件,ls -l命令的連接計(jì)數(shù)count域的數(shù)值就是本文件擁有的硬連接數(shù)。硬連
接可以通過(guò)ln命令建立,例如:
# ln /home/zyd/mytext hardlink_mytext
就建立了一個(gè)新的文件hardlink_mytext,這個(gè)文件的inode同樣是262457。建立硬連接實(shí)際上只是增加了一個(gè)
目錄項(xiàng),但并復(fù)制文件數(shù)據(jù)區(qū),原文件的數(shù)據(jù)區(qū)由兩個(gè)文件共享。這一方面能夠節(jié)約大量磁盤空間,同時(shí)可以保
證兩個(gè)文件能同步更新。
'ls -il'可以顯示文件的inode(在下面最左邊):
262456 -rw-rw-r-- 1 zyd zyd 17 Nov 3 14:52 newfile
262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 hardlink_mytext
262457 -rw-rw-r-- 2 zyd zyd 17 Nov 3 14:50 mytext
3、連接計(jì)數(shù)count:
前面我們介紹了,文件的連接計(jì)數(shù)域表明本系統(tǒng)中共有幾個(gè)文件目錄項(xiàng)的inode和本文件相同,也就是本文件共
有幾個(gè)硬連接。如上面的例子中hardlink_mytext和mytext文件的count值都是2。
那么對(duì)于目錄,其count域的含義是什么呢?目錄的count同樣表示共有多少個(gè)目錄項(xiàng)指向此目錄,不過(guò)要詳細(xì)
說(shuō)明必須進(jìn)一步解釋VFS文件系統(tǒng)的結(jié)構(gòu),為簡(jiǎn)單起見,只要這樣理解就行了:(count-2)等于本目錄包含的直
接子目錄數(shù)(就是只包括兒子,不包括孫子啦!)。例如:如果一個(gè)目錄/abc的count域?yàn)?,那么
/abc目錄一定包含3個(gè)子目錄。
至此我們已經(jīng)介紹了普通文件、目錄文件、設(shè)備文件、硬連接、連接計(jì)數(shù)、索引節(jié)點(diǎn)等非常重要的概念。
4、進(jìn)一步說(shuō)明:
硬連接文件實(shí)際上并不是一種新的文件類型,兩個(gè)文件互為對(duì)方的硬連接。它們應(yīng)該都是普通文件(誰(shuí)能告訴
我:其它類型的文件可以硬連接嗎?)。兩個(gè)文件除了名稱或/和文件目錄不同外,其它部分完全相同,更改了一
個(gè)文件,另一個(gè)的文件長(zhǎng)度、內(nèi)容、更改時(shí)間等都將相應(yīng)發(fā)生變化,更改了一個(gè)文件的權(quán)限位mode,另一個(gè)也會(huì)
發(fā)生同樣的變化。
注意連接計(jì)數(shù)字段count,互為硬連接的兩個(gè)文件的count值都是2,表明有兩個(gè)inode指向同一文件的inode。
當(dāng)我們刪除其中一個(gè)文件時(shí),系統(tǒng)首先將(count-1)->count,如果結(jié)果是零,就將其目錄項(xiàng)和數(shù)據(jù)區(qū)都刪除,
否則只將本目錄項(xiàng)刪除,數(shù)據(jù)區(qū)仍然保留,仍然可以通過(guò)另外的文件名訪問(wèn)。根據(jù)這個(gè)特性,可以通過(guò)為重要的
文件建立硬連接的方法來(lái)防止其被誤刪除。
一個(gè)文件系統(tǒng)允許的inode節(jié)點(diǎn)數(shù)是有限的,如果文件數(shù)量太多,即使每個(gè)文件都是0字節(jié)的空文件,系統(tǒng)最終
也會(huì)因?yàn)楣?jié)點(diǎn)空間耗盡而不能再創(chuàng)建文件。所以當(dāng)發(fā)現(xiàn)不能建立文件時(shí)首先要考慮硬盤數(shù)據(jù)區(qū)是否還有空間(可
通過(guò)du命令),其次還得檢查節(jié)點(diǎn)空間。
互為硬連接的多個(gè)文件必須位于同一個(gè)文件系統(tǒng)上。根設(shè)備及任何一個(gè)需要mount才能掛接進(jìn)來(lái)的分區(qū)、軟盤、
NFS、光驅(qū)等都是一個(gè)獨(dú)立的文件系統(tǒng),每個(gè)文件系統(tǒng)有一個(gè)相應(yīng)的設(shè)備號(hào),不同文件系統(tǒng)中具有相同inode節(jié)
點(diǎn)的文件間沒有任何聯(lián)系。系統(tǒng)則通過(guò)設(shè)備號(hào)和inode號(hào)的組合唯一確定一個(gè)文件。
Linux之所以能支持多種文件系統(tǒng),其實(shí)是由于Linux提供了一個(gè)虛擬文件系統(tǒng)VFS,VFS作為實(shí)際文件系統(tǒng)的上
層軟件,掩蓋了實(shí)際文件系統(tǒng)底層的具體結(jié)構(gòu)差異,為系統(tǒng)訪問(wèn)位于不同文件系統(tǒng)的文件提供了一個(gè)統(tǒng)一的接
口。實(shí)際上許多文件系統(tǒng)并不具備inode結(jié)構(gòu),其目錄結(jié)構(gòu)也和以上的討論不同,但通過(guò)VFS,系統(tǒng)均為其提供
了虛擬一致的inode和目錄項(xiàng)結(jié)構(gòu)。所以,'ls -il'命令實(shí)際顯示的inode應(yīng)該是VFS inode,也就是說(shuō),
inode是存在于內(nèi)存中的數(shù)據(jù)結(jié)構(gòu),而不一定是實(shí)際的硬盤結(jié)構(gòu)。但為L(zhǎng)inux量身定做的ext2文件系統(tǒng)具備實(shí)際
的inode和連接型目錄項(xiàng)結(jié)構(gòu),所以,對(duì)于ext2文件系統(tǒng),可以認(rèn)為我們上面討論的關(guān)于硬連接的概念是完全正
確的。
本節(jié)最后兩段的說(shuō)明如果您暫時(shí)理解不了也沒關(guān)系,隨著學(xué)習(xí)的深入,慢慢就能理解了。
五、符號(hào)連接
============
不同文件系統(tǒng)中的文件不能建立硬連接,但可以通過(guò)符號(hào)連接進(jìn)行同步。符號(hào)連接是一種獨(dú)立的文件類型,它有
自己的數(shù)據(jù)區(qū),但數(shù)據(jù)區(qū)的內(nèi)容只是一個(gè)被它指向的文件的路徑名。前言那節(jié)的例子1.5說(shuō)明文件sym_link是一
個(gè)指向/tmp/sym_target文件的符號(hào)連接,如果我們cat sym_link,系統(tǒng)自動(dòng)將它指向的文件打開顯示而不是
顯示sym_link文件本身,注意sym_link的文件長(zhǎng)度是15,正是字符串/tmp/sym_target的長(zhǎng)度。建立符號(hào)連接
和建立硬連接一樣使用ln命令,不過(guò)要加入'-s'選項(xiàng):
ln -s /home/zyd/file_system/mytext my_sym_link
# ls -li my_sym_link
262458 lrwxrwxrwx 1 zyd zyd 28 Nov 3 14:55 my_sym_link -> /home/zyd/file_system/mytext
思考題:建立符號(hào)連接時(shí)一般都要輸入目標(biāo)文件的絕對(duì)路徑,為什么?
(提示:假設(shè)我們想讓用戶在任意當(dāng)前目錄都能執(zhí)行/usr/local/my_bin/myproc而運(yùn)行如下命令:
# cd /usr/local/bin
# ln -s ../my_bin/myproc myproc)
六、文件模式位mode
==================
通過(guò)chmod命令可以改變用戶對(duì)相應(yīng)文件的存取權(quán)限。
Linux系統(tǒng)用一個(gè)16位的字來(lái)存儲(chǔ)每個(gè)文件的type和mode,其中高4位通過(guò)組合來(lái)決定文件的type,它是在文件
創(chuàng)建時(shí)寫入的,用戶不能更改。下面介紹后面的12位模式位
bit|11 10 9 |8 7 6 | 5 4 3 | 2 1 0 |
----|--------|--------|---------|---------|
| X X X |X X X | X X X | X X X |
----|--------|--------|---------|---------|
mode r w x r w x r w x
將這12位分成4組,高位組(9,10,11位)每位都有特殊的含義,下面將具體說(shuō)明。此高位組(6,7,8位)決定文件
屬主擁有的權(quán)限,再下一組決定文件屬組成員對(duì)此文件擁有的權(quán)限,最低位組決定除了屬主及屬組以外的用戶擁
有的對(duì)此文件操作的權(quán)限。
較低3組中每組從最低位到最高位分別是執(zhí)行位、改寫位和讀取位,哪位置1表示有相關(guān)權(quán)限。例如第6位是1表示
屬主可以執(zhí)行此文件,第4位是1同組其他用戶可以改寫此文件,第2位是1表示其它用戶可以讀此文件。每組的3
位構(gòu)成一位8進(jìn)制數(shù),可以將各權(quán)限位的組合通過(guò)3位8進(jìn)制表示,例如:
111 101 100表示成754,則命令:
chmod 754 filename使文件的屬主能讀、寫和執(zhí)行filename文件,本組的其他用戶可以讀和執(zhí)行此文件,但不
能修改。其他用戶則只能讀該文件。
第11位是SUID位,第10位是SGID位,第9位是粘附位。
如果某個(gè)可執(zhí)行文件設(shè)置了SUID位,則此文件運(yùn)行時(shí)的進(jìn)程將具備和此文件屬主相同的權(quán)限。
/usr/bin/passwd設(shè)置了SUID位且其屬主是root,則任何用戶運(yùn)行它時(shí),其進(jìn)程就具備了root權(quán)限,這就是為
什么普通用戶也可以通過(guò)passwd命令更改自己的登陸口令的原因(實(shí)際就是改變/etc/shadow文件,只有root有
權(quán)讀寫此文件).具備SUID位且屬主可執(zhí)行,則屬主執(zhí)行位顯示s來(lái)代替沒有SUID位的x,如果屬主不能執(zhí)行,則
顯示為大寫的S。
SGID和SUID含義相對(duì)應(yīng)。設(shè)置SGID位且屬組可執(zhí)行,則屬組執(zhí)行位改成s顯示,否則以S顯示。
粘附位根據(jù)其他用戶是否可執(zhí)行分別在ls -l時(shí)在其他用戶執(zhí)行位上顯示成t或T。對(duì)于可執(zhí)行文件,設(shè)置了粘附
位可以使其第一次運(yùn)行后在交換分區(qū)swap中保留正文的副本,由于交換分區(qū)的文件是連續(xù)存放的,所以下次運(yùn)行
時(shí)能較快調(diào)入內(nèi)存。對(duì)于現(xiàn)代文件系統(tǒng)來(lái)說(shuō),這一功能已經(jīng)沒有什么實(shí)際意義了。
如果對(duì)一個(gè)目錄設(shè)置了粘附位,則只有對(duì)于該目錄具有寫許可權(quán)的用戶且滿足如下三個(gè)條件之一,才能刪除或更
名該目錄下的文件:
1、超級(jí)用戶root。
2、此目錄的擁有者。
3、擁有要被刪除或更改名字的文件。
這一特性被Linux使用到了/tmp目錄上:任何人都可以使用該目錄存儲(chǔ)文件,但只有文件所有者和root可以刪除
或更名文件。
最后要談的是目錄的讀、寫和執(zhí)行位的準(zhǔn)確含義
初學(xué)者常常對(duì)目錄的權(quán)限位理解得似是而非,原因主要在于對(duì)文件系統(tǒng)的確切結(jié)構(gòu)不理解。
r表示讀目錄,w表示寫目錄,而x表示搜索目錄(注意不是執(zhí)行目錄)
我們通過(guò)以上討論已經(jīng)知道目錄實(shí)際是一種特殊文件,它由目錄項(xiàng)構(gòu)成,每個(gè)目錄項(xiàng)包括該目錄下一個(gè)文件的文
件名和inode。所以讀權(quán)限就是讀目錄項(xiàng)的權(quán)限,因此獲得此目錄所包含的文件名列表。同樣寫目錄權(quán)限就是更
改目錄目錄文件(增加、減少和更名目錄項(xiàng)),實(shí)際就是能否在該目錄建立、刪除文件和為文件改名。搜索權(quán)限通
俗點(diǎn)可以理解為進(jìn)入目錄對(duì)文件內(nèi)容進(jìn)行操作的權(quán)限,包括打開文件、獲取文件的進(jìn)一步詳細(xì)信息等權(quán)力。更通
俗點(diǎn),我們可以將目錄比喻為盛藥的盒子,我們?cè)谝粋€(gè)大藥盒(根目錄)上貼上叫“藥品”的標(biāo)簽(目錄名),下面
列著“青霉素”和“感冒藥”(目錄項(xiàng)),擁有x權(quán)限相當(dāng)于有打開這個(gè)盒子的鑰匙。如果我們擁有鑰匙,就能打
開這個(gè)盒子(擁有根目錄的x權(quán)限,可以進(jìn)入),打開后發(fā)現(xiàn)里面還有一個(gè)加鎖的盒子貼有“感冒藥”標(biāo)簽(子目
錄),下面列著“感冒通”、“感康”......,另外還有一個(gè)藥瓶里面裝有消炎藥青霉素(文件)。
如果我們需要服用“青霉素”(相當(dāng)于打開根目錄下的文件),則我們必須擁有開大箱子的鑰匙(根目錄x權(quán)限)和
吃藥的權(quán)力(相應(yīng)文件權(quán)限),但如果我們需要服用“感康”,則必須還有下一把鑰匙。目錄讀權(quán)限相當(dāng)于我們是
否識(shí)字,寫權(quán)限相當(dāng)于我們是否擁有一只筆。只要識(shí)字,我們沒有任何鑰匙也能大致了解大箱子內(nèi)有什么,但無(wú)
法了解小盒子里有些什么具體藥品。如果需要了解就必須首先能打開大箱子。如果我們要向大箱子內(nèi)放入一種新
藥或拿出一種藥品(相當(dāng)于在根目錄內(nèi)創(chuàng)建、刪除文件),我們首先必須能進(jìn)入大箱子(x),然后有筆(w)能相應(yīng)
更改大箱子的標(biāo)簽。
有了以上的比喻,下面進(jìn)行正式說(shuō)明:
1、當(dāng)我們打開任何文件時(shí)(也就是我們的命令中包含最終文件名時(shí)),對(duì)該文件名的絕對(duì)路徑中的每個(gè)目錄均必
須擁有x搜索權(quán)限。也只有擁有了x權(quán)限,才能用cd命令進(jìn)入該目錄。
2、讀權(quán)限允許我們通過(guò)ls命令獲得該目錄的文件名列表,但前提仍然是必須對(duì)該目錄的所有上級(jí)目錄擁有x權(quán)限
(想想藥盒的故事)。
3、在滿足目錄權(quán)限的前提下,最終對(duì)文件的讀、寫、執(zhí)行取決于文件權(quán)限。
4、只要你擁有一個(gè)目錄的寫權(quán)限及其所有上層目錄的搜索權(quán)限,你就能在該目錄建立文件和刪除文件,即使這
個(gè)文件不歸你所有?。?!
5、超級(jí)用戶可以超越大多數(shù)文件權(quán)限的檢查。
思考題:
1、為什么目錄建立的默認(rèn)權(quán)限是rwxr-xr-x?
2、假設(shè)在你的當(dāng)前目錄下有一個(gè)子目錄test,你擁有讀和寫權(quán)限,沒有搜索權(quán)限,如下命令哪些能夠成功執(zhí)
行?為什么?
ls test
ls -l test
cd test
cp /etc/passwd ./test/newpasswd
del test/new_file
ln test/new_file up_file
七、更改文件模式mode
====================
更改文件模式可以通過(guò)chmod命令進(jìn)行,我們將mode的低12位每3位一組組成4位8進(jìn)制數(shù),被設(shè)置權(quán)限的位為1,
否則為0,作為chmod的參數(shù)之一,后面跟需要更改權(quán)限的文件名列表,例如:
# chmod 4752 this.file
設(shè)置了this.file的SUID位(4),文件屬主可以讀、寫和執(zhí)行(7)、同組其他用戶可以讀和執(zhí)行,不能更改(5)、
其他用戶只能改寫、不能讀和執(zhí)行(2)——哪位真的這樣設(shè)置了權(quán)限位,肯定腦筋有點(diǎn)問(wèn)題:)
(全文完)
======================================== 一點(diǎn)說(shuō)明 ======================================
我接觸Linux還不滿1年,UNIX則從未見過(guò),又剛剛學(xué)習(xí)編程,文中錯(cuò)誤和不當(dāng)之處難免,歡迎各位指正。
Julian Chang
julian_ch@bigfoot.com
2000年11月20日