Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評(píng)論 :: 0 Trackbacks
          http://hi.baidu.com/skyforum/blog/item/4219b72699f160168a82a1db.html
          ?
          Linux文件權(quán)限詳解
          ?
          ?
          一、文件和目錄權(quán)限概述
          ??? 在linux中的每一個(gè)文件或目錄都包含有訪問(wèn)權(quán)限,這些訪問(wèn)權(quán)限決定了誰(shuí)能訪問(wèn)和如何訪問(wèn)這些文件和目錄。
          ?
          ??? 通過(guò)設(shè)定權(quán)限可以從以下三種訪問(wèn)方式限制訪問(wèn)權(quán)限:1.只允許用戶自己訪問(wèn);2.允許一個(gè)預(yù)先指定的用戶組中的用戶訪問(wèn);3.允許系統(tǒng)中的任何用戶訪問(wèn)。同時(shí),用戶能夠控制一個(gè)給定的文件或目錄的訪問(wèn)程度。一個(gè)文件活目錄可能有讀、寫及執(zhí)行權(quán)限。當(dāng)創(chuàng)建一個(gè)文件時(shí),系統(tǒng)會(huì)自動(dòng)地賦予文件所有者讀和寫的權(quán)限,這樣可以允許所有者能夠顯示文件內(nèi)容和修改文件。文件所有者可以將這些權(quán)限改變?yōu)槿魏嗡胫付ǖ臋?quán)限。一個(gè)文件也許只有讀權(quán)限,禁止任何修改。文件也可能只有執(zhí)行權(quán)限,允許它像一個(gè)程序一樣執(zhí)行。
          ?
          ??? 三種不同的用戶類型能夠訪問(wèn)一個(gè)目錄或者文件:1.所有者;2.用戶組;3.其他用戶。所有者就是創(chuàng)建文件的用戶,用戶是所有用戶所創(chuàng)建的文件的所有者,用戶可以允許所在的用戶組能訪問(wèn)用戶的文件。通常,用戶都組合成用戶組,例如,某一類或某一項(xiàng)目中的所有用戶都能夠被系統(tǒng)管理員歸為一個(gè)用戶組,一個(gè)用戶能夠授予所在用戶組的其他成員的文件訪問(wèn)權(quán)限。最后,用戶也將自己的文件向系統(tǒng)內(nèi)的所有用戶開(kāi)放,在這種情況下,系統(tǒng)內(nèi)的所有用戶都能夠訪問(wèn)用戶的目錄或文件。在這種意義上,系統(tǒng)內(nèi)的其他所有用戶就是other用戶類。
          ?
          ??? 每一個(gè)用戶都有它自身的讀、寫和執(zhí)行權(quán)限。第一套權(quán)限控制訪問(wèn)自己的文件權(quán)限,即所有者權(quán)限。第二套權(quán)限控制用戶組訪問(wèn)其中一個(gè)用戶的文件的權(quán)限。第三套權(quán)限控制其他所有用戶訪問(wèn)一個(gè)用戶的文件的權(quán)限,這三套權(quán)限賦予用戶不同類型(即所有者、用戶組和其他用戶)的讀、寫及執(zhí)行權(quán)限就構(gòu)成了一個(gè)有9種類型的權(quán)限組。
          ?
          ??? 我們可以用-l參數(shù)的ls命令顯示文件的詳細(xì)信息,其中包括權(quán)限。如下所示:
          ?
          [yekai@kebao:/media/sda5/ 軟件壓縮/Linux]$ ls -lh
          總用量 191M
          -rwxrwx--- 1 root plugdev 18M 2007-02-28 18:05 ActionCube_v0.92.tar.bz2
          -rwxrwx--- 1 root plugdev 60M 2007-04-30 22:52 nexuiz-223.zip
          -rwxrwx--- 1 root plugdev 7.4M 2007-04-25 02:16 stardict-oxford-gb-2.4.2.tar.bz2
          -rwxrwx--- 1 root plugdev 102M 2007-05-01 18:22 tremulous-1.1.0-installer.x86.run
          -rwxrwx--- 1 root plugdev 4.9M 2007-04-30 14:32 wqy-bitmapfont-0.8.1-7_all.deb.bin
          ?
          ??? 當(dāng)執(zhí)行l(wèi)s -l 或 ls -al 命令后顯示的結(jié)果中,最前面的第2~10個(gè)字符是用來(lái)表示權(quán)限。第一個(gè)字符一般用來(lái)區(qū)分文件和目錄:
          ?
          ??? d:表示是一個(gè)目錄,事實(shí)上在ext2fs中,目錄是一個(gè)特殊的文件。
          ??? - :表示這是一個(gè)普通的文件。
          ??? l: 表示這是一個(gè)符號(hào)鏈接文件,實(shí)際上它指向另一個(gè)文件。
          ??? b、c:分別表示區(qū)塊設(shè)備和其他的外圍設(shè)備,是特殊類型的文件。
          ??? s、p:這些文件關(guān)系到系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)和管道,通常很少見(jiàn)到。
          ?
          ??? 下面詳細(xì)介紹一下權(quán)限的種類和設(shè)置權(quán)限的方法。
          ?
          ?
          二、一般權(quán)限

          ??? 第2~10個(gè)字符當(dāng)中的每3個(gè)為一組,左邊三個(gè)字符表示所有者權(quán)限,中間3個(gè)字符表示與所有者同一組的用戶的權(quán)限,右邊3個(gè)字符是其他用戶的權(quán)限。這三個(gè)一組共9個(gè)字符,代表的意義如下:
          ??? r(Read,讀取):對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽目錄的權(quán)限。
          ??? w(Write,寫入):對(duì)文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。
          ??? x(eXecute,執(zhí)行):對(duì)文件而言,具有執(zhí)行文件的權(quán)限;對(duì)目錄了來(lái)說(shuō)該用戶具有進(jìn)入目錄的權(quán)限。
          ???? -:表示不具有該項(xiàng)權(quán)限。
          ??? 下面舉例說(shuō)明:
          ??? -rwx------: 文件所有者對(duì)文件具有讀取、寫入和執(zhí)行的權(quán)限。
          ??? -rwxr--r--: 文件所有者具有讀、寫與執(zhí)行的權(quán)限,其他用戶則具有讀取的權(quán)限。
          ??? -rw-rw-r-x: 文件所有者與同組用戶對(duì)文件具有讀寫的權(quán)限,而其他用戶僅具有讀取和執(zhí)行的權(quán)限。
          ??? drwx--x--x: 目錄所有者具有讀寫與進(jìn)入目錄的權(quán)限,其他用戶近能進(jìn)入該目錄,卻無(wú)法讀取任何數(shù)據(jù)。
          ??? drwx------: 除了目錄所有者具有完整的權(quán)限之外,其他用戶對(duì)該目錄完全沒(méi)有任何權(quán)限。
          ?
          ??? 每個(gè)用戶都擁有自己的專屬目錄,通常集中放置在/home目錄下,這些專屬目錄的默認(rèn)權(quán)限為rwx------: 表示目錄所有者本身具有所有權(quán)限,其他用戶無(wú)法進(jìn)入該目錄。
          ?
          ??? 執(zhí)行mkdir命令所創(chuàng)建的目錄,其默認(rèn)權(quán)限為rwxr-xr-x,用戶可以根據(jù)需要修改目錄的權(quán)限。
          ?
          ??? 此外,默認(rèn)的權(quán)限可用umask命令修改,用法非常簡(jiǎn)單,只需執(zhí)行umask 777 命令,便代表屏蔽所有的權(quán)限,因而之后建立的文件或目錄,其權(quán)限都變成000,依次類推。通常root帳號(hào)搭配umask命令的數(shù)值為022、027和 077,普通用戶則是采用002,這樣所產(chǎn)生的權(quán)限依次為755、750、700、775。有關(guān)權(quán)限的數(shù)字表示法,后面將會(huì)詳細(xì)說(shuō)明。
          ?
          ??? 用戶登錄系統(tǒng)時(shí),用戶環(huán)境就會(huì)自動(dòng)執(zhí)行rmask命令來(lái)決定文件、目錄的默認(rèn)權(quán)限。
          ?
          ?
          三、特殊權(quán)限

          ??? 其實(shí)文件與目錄設(shè)置不止這些,還有所謂的特殊權(quán)限。由于特殊權(quán)限會(huì)擁有一些“特權(quán)”,因而用戶若無(wú)特殊需求,不應(yīng)該啟用這些權(quán)限,避免安全方面出現(xiàn)嚴(yán)重漏洞,造成黑客入侵,甚至摧毀系統(tǒng)!!!
          ?
          ??? s或S(SUID,Set UID):可執(zhí)行的文件搭配這個(gè)權(quán)限,便能得到特權(quán),任意存取該文件的所有者能使用的全部系統(tǒng)資源。請(qǐng)注意具備SUID權(quán)限的文件,黑客經(jīng)常利用這種權(quán)限,以SUID配上root帳號(hào)擁有者,無(wú)聲無(wú)息地在系統(tǒng)中開(kāi)扇后門,供日后進(jìn)出使用。
          ?
          ??? s或S(SGID,Set GID):設(shè)置在文件上面,其效果與SUID相同,只不過(guò)將文件所有者換成用戶組,該文件就可以任意存取整個(gè)用戶組所能使用的系統(tǒng)資源。
          ?
          ??? T或T(Sticky):/tmp和 /var/tmp目錄供所有用戶暫時(shí)存取文件,亦即每位用戶皆擁有完整的權(quán)限進(jìn)入該目錄,去瀏覽、刪除和移動(dòng)文件。
          ?
          ??? 因?yàn)镾UID、SGID、Sticky占用x的位置來(lái)表示,所以在表示上會(huì)有大小寫之分。加入同時(shí)開(kāi)啟執(zhí)行權(quán)限和SUID、SGID、Sticky,則權(quán)限表示字符是小寫的:
          ??? -rwsr-sr-t 1 root root 4096 6月 23 08:17 conf
          ?
          ??? 如果關(guān)閉執(zhí)行權(quán)限,則表示字符會(huì)變成大寫:
          ??? -rwSr-Sr-T 1 root root 4096 6月 23 08:17 conf
          ?
          ?
          四、使用文件管理器來(lái)改變文件或目錄的權(quán)限:

          ??? 如果用戶要改變一個(gè)文件目錄的權(quán)限,右擊要改變權(quán)限的文件或者目錄,在彈出的快捷菜單中選擇“屬性”,系統(tǒng)將打開(kāi)屬性對(duì)話框
          ?
          ??? 在“屬性”對(duì)話框中,單擊“權(quán)限”標(biāo)簽,就會(huì)打開(kāi)“權(quán)限”選項(xiàng)卡。
          ?
          ??? 在這里你可以修改文件或者目錄的所有者、組群和其他用戶的權(quán)限,而且可以設(shè)置特殊權(quán)限
          ?
          ??? 對(duì)于特殊權(quán)限,最好不要設(shè)置,不然會(huì)帶來(lái)很嚴(yán)重的安全問(wèn)題。
          ?
          ??? 當(dāng)然,在這里你也可以改變文件和目錄的所有者和所屬組。
          ?
          ?
          五、使用chmod和數(shù)字改變文件或目錄的訪問(wèn)權(quán)限
          ?
          ??? 文件和目錄的權(quán)限表示,是用rwx這三個(gè)字符來(lái)代表所有者、用戶組和其他用戶的權(quán)限。有時(shí)候,字符似乎過(guò)于麻煩,因此還有另外一種方法是以數(shù)字來(lái)表示權(quán)限,而且僅需三個(gè)數(shù)字。
          ?
          ??? r: 對(duì)應(yīng)數(shù)值4
          ??? w: 對(duì)應(yīng)數(shù)值2
          ??? x:對(duì)應(yīng)數(shù)值1
          ??? - :對(duì)應(yīng)數(shù)值0
          ?
          ??? 數(shù)字設(shè)定的關(guān)鍵是mode的取值,一開(kāi)始許多初學(xué)者會(huì)被搞糊涂,其實(shí)很簡(jiǎn)單,我們將rwx看成二進(jìn)制數(shù),如果有則有1表示,沒(méi)有則有0表示,那么rwx r-x r- -則可以表示成為:
          ??? 111 101 100
          ?
          ??? 再將其每三位轉(zhuǎn)換成為一個(gè)十進(jìn)制數(shù),就是754。
          ?
          ??? 例如,我們想讓a.txt這個(gè)文件的權(quán)限為:
          ?
          ?????????? 自己?? 同組用戶?其他用戶
          ??? 可讀??? 是???? 是??????
          ??? 可寫??? 是????
          ??? 可執(zhí)行
          ?
          ??? 那么,我們先根據(jù)上表得到權(quán)限串為:rw-rw-r--,那么轉(zhuǎn)換成二進(jìn)制數(shù)就是110 110 100,再每三位轉(zhuǎn)換成為一個(gè)十進(jìn)制數(shù),就得到664,因此我 們執(zhí)行命令:
          ?
          ??? [root@localhost ~]# chmod 664 a.txt
          ?
          ??? 按照上面的規(guī)則,rwx合起來(lái)就是4+2+1=7,一個(gè)rwxrwxrwx權(quán)限全開(kāi)放的文件,數(shù)值表示為777;而完全不開(kāi)放權(quán)限的文件“---------”其數(shù)字表示為000。下面舉幾個(gè)例子:
          ?
          ??? -rwx------:等于數(shù)字表示700。
          ??? -rwxr―r--:等于數(shù)字表示744。
          ??? -rw-rw-r-x:等于數(shù)字表示665。
          ??? drwx―x―x:等于數(shù)字表示711。
          ??? drwx------:等于數(shù)字表示700。
          ?
          ??? 在文本模式下,可執(zhí)行chmod命令去改變文件和目錄的權(quán)限。我們先執(zhí)行l(wèi)s -l 看看目錄內(nèi)的情況:
          ?
          [root@localhost ~]# ls -l
          總用量 368
          -rw-r--r-- 1 root root 12172 8月 15 23:18 conkyrc.sample
          drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
          -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
          drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
          -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
          drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
          ?
          ??? 可以看到當(dāng)然文件conkyrc.sample文件的權(quán)限是644,然后把這個(gè)文件的權(quán)限改成777。執(zhí)行下面命令
          ?
          ??? [root@localhost ~]# chmod 777 conkyrc.sample
          ?
          ??? 然后ls -l看一下執(zhí)行后的結(jié)果:
          ?
          [root@localhost ~]# ls -l
          總用量 368
          -rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample
          drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
          -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
          drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
          -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
          drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
          ?
          ??? 可以看到conkyrc.sample文件的權(quán)限已經(jīng)修改為rwxrwxrwx
          ?
          ??? 如果要加上特殊權(quán)限,就必須使用4位數(shù)字才能表示。特殊權(quán)限的對(duì)應(yīng)數(shù)值為:
          ?
          ??? s或S?(SUID):對(duì)應(yīng)數(shù)值4。
          ??? s或S?(SGID):對(duì)應(yīng)數(shù)值2。
          ??? t或T :對(duì)應(yīng)數(shù)值1。
          ?
          ??? 用同樣的方法修改文件權(quán)限就可以了(在原有3位的前面加上1位即可)
          ?
          ??? 例如:
          [root@localhost ~]# chmod 7600 conkyrc.sample
          [root@localhost ~]# ls -l
          總用量 368
          -rwS--S--T 1 root root 12172 8月 15 23:18 conkyrc.sample
          drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
          -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
          drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
          -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
          drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
          ?
          ??? 加入想一次修改某個(gè)目錄下所有文件的權(quán)限,包括子目錄中的文件權(quán)限也要修改,要使用參數(shù)-R表示啟動(dòng)遞歸處理。
          ?
          ??? 例如:
          ??? [root@localhost ~]# chmod 777 /home/user??? 注:僅把/home/user目錄的權(quán)限設(shè)置為rwxrwxrwx
          ??? [root@localhost ~]# chmod -R 777 /home/user 注:表示將整個(gè)/home/user目錄與其中的文件和子目錄的權(quán)限都設(shè)置為rwxrwxrwx
          ?
          ?
          六、使用命令chown改變目錄或文件的所有權(quán)
          ?
          ??? 文件與目錄不僅可以改變權(quán)限,其所有權(quán)及所屬用戶組也能修改,和設(shè)置權(quán)限類似,用戶可以通過(guò)圖形界面來(lái)設(shè)置,或執(zhí)行chown命令來(lái)修改。
          ?
          ??? 我們先執(zhí)行l(wèi)s -l看看目錄情況:
          ?
          [root@localhost ~]# ls -l
          總用量 368
          -rwxrwxrwx 1 root root 12172 8月 15 23:18 conkyrc.sample
          drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
          -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
          drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
          -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
          drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
          ?
          ??? 可以看到conkyrc.sample文件的所屬用戶組為root,所有者為root。
          ?
          ??? 執(zhí)行下面命令,把conkyrc.sample文件的所有權(quán)轉(zhuǎn)移到用戶user:
          ?
          [root@localhost ~]# chown user conkyrc.sample
          [root@localhost ~]# ls -l
          總用量 368
          -rwxrwxrwx 1 user root 12172 8月 15 23:18 conkyrc.sample
          drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
          -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
          drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
          -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
          drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
          ?
          ??? 要改變所屬組,可使用下面命令:
          ?
          [root@localhost ~]# chown :users conkyrc.sample
          [root@localhost ~]# ls -l
          總用量 368
          -rwxrwxrwx 1 user users 12172 8月 15 23:18 conkyrc.sample
          drwxr-xr-x 2 root root 48 9月 4 16:32 Desktop
          -r--r--r-- 1 root root 331844 10月 22 21:08 libfreetype.so.6
          drwxr-xr-x 2 root root 48 8月 12 22:25 MyMusic
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth0
          -rwxr-xr-x 1 root root 9776 11月 5 08:08 net.eth1
          -rwxr-xr-x 1 root root 512 11月 5 08:08 net.lo
          drwxr-xr-x 2 root root 48 9月 6 13:06 vmware
          ?
          ??? 要修改目錄的權(quán)限,使用-R參數(shù)就可以了,方法和前面一樣。
          ?




          -The End-

          posted on 2009-05-03 23:11 decode360-3 閱讀(2223) 評(píng)論(0)  編輯  收藏 所屬分類: Linux
          主站蜘蛛池模板: 锡林郭勒盟| 呈贡县| 夹江县| 乐安县| 平利县| 哈巴河县| 峨眉山市| 巫山县| 平湖市| 兰州市| 怀远县| 当雄县| 布尔津县| 赤壁市| 奎屯市| 吉安市| 万安县| 栾川县| 大渡口区| 彭山县| 泊头市| 大洼县| 柳林县| 南宫市| 霍城县| 墨脱县| 柳州市| 合肥市| 阿拉善盟| 磴口县| 定安县| 郓城县| 乌兰察布市| 东乌珠穆沁旗| 信宜市| 庆云县| 洛南县| 抚宁县| 铅山县| 涟源市| 玛纳斯县|