在Linux中的每個文件或目錄都包含有訪問權限,這些訪問權限決定了誰能訪問和如何訪問這些文件和目錄。 經過設定權限能夠從如下三種訪問方式限制訪問權限:只容許用戶本身訪問;容許一個預先指定的用戶組中的用戶訪問;容許系統中的任何用戶訪問。同時,用戶可以控制一個給定的文件或目錄的訪問程度。一個文件活目錄可能有讀、寫及執行權限。當建立一個文件時,系統會自動地賦予文件全部者讀和寫的權限,這樣能夠容許全部者可以顯示文件內容和修改文件。文件全部者能夠將這些權限改變爲任何他想指定的權限。一個文件也許只有讀權限,禁止任何修改。文件也可能只有執行權限,容許它想一個程序同樣執行。 三種不一樣的用戶類型可以訪問一個目錄或者文件:全部着、用戶組或其餘用戶。全部者就是建立文件的用戶,用戶是全部用戶所建立的文件的全部者,用戶能夠容許所在的用戶組能訪問用戶的文件。一般,用戶都組合成用戶組,例如,某一類或某一項目中的全部用戶都可以被系統管理員歸爲一個用戶組,一個用戶可以授予所在用戶組的其餘成員的文件訪問權限。最後,用戶也將本身的文件向系統內的全部用戶開放,在這種狀況下,系統內的全部用戶都可以訪問用戶的目錄或文件。在這種意義上,系統內的其餘全部用戶就是other用戶類。 每個用戶都有它自身的讀、寫和執行權限。第一套權限控制訪問本身的文件權限,即全部者權限。第二套權限控制用戶組訪問其中一個用戶的文件的權限。第三套權限控制其餘全部用戶訪問一個用戶的文件的權限,這三套權限賦予用戶不一樣類型(即全部者、用戶組和其餘用戶)的讀、寫及執行權限就構成了一個有9種類型的權限組。 --------------------------------------分割線 -------------------------------------- Linux文件權限和訪問模式 連接 http://www.linuxidc.com/Linux/2015-09/122934.htm UNIX文件權限之「設置用戶ID位」 http://www.linuxidc.com/Linux/2015-07/120628.htm Linux 文件權限 chmod chown http://www.linuxidc.com/Linux/2015-04/116853.htm Linux權限補充:rwt rwT rws rwS 特殊權限 http://www.linuxidc.com/Linux/2013-07/87537.htm Linux用戶及用戶組權限 http://www.linuxidc.com/Linux/2013-05/84980.htm Linux三個特殊權限 setuid setgid stick bit http://www.linuxidc.com/Linux/2013-08/88587.htm Linux系統入門教程:Linux 文件權限簡單說明 http://www.linuxidc.com/Linux/2015-03/115135.htm Linux下用戶組、文件權限詳解 http://www.linuxidc.com/Linux/2015-04/116103.htm --------------------------------------分割線 -------------------------------------- 咱們能夠用-l參數的ls命令顯示文件的詳細信息,其中包括權限。以下所示: linuxidc.com@linuxidc.com:/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 當執行ls -l 或 ls -al 命令後顯示的結果中,最前面的第2~10個字符是用來表示權限。第一個字符通常用來區分文件和目錄: d:表示是一個目錄,事實上在ext2fs中,目錄是一個特殊的文件。 -:表示這是一個普通的文件。 l: 表示這是一個符號連接文件,實際上它指向另外一個文件。 b、c:分別表示區塊設備和其餘的外圍設備,是特殊類型的文件。 s、p:這些文件關係到系統的數據結構和管道,一般不多見到。 下面詳細介紹一下權限的種類和設置權限的方法。 通常權限 第2~10個字符當中的每3個爲一組,左邊三個字符表示全部者權限,中間3個字符表示與全部者同一組的用戶的權限,右邊3個字符是其餘用戶的權限。這三個一組共9個字符,表明的意義以下: r(Read,讀取):對文件而言,具備讀取文件內容的權限;對目錄來講,具備瀏覽目錄的權 w(Write,寫入):對文件而言,具備新增、修改文件內容的權限;對目錄來講,具備刪除、移動目錄內文件的權限。 x(eXecute,執行):對文件而言,具備執行文件的權限;對目錄了來講該用戶具備進入目錄的權限。 -:表示不具備該項權限。 下面舉例說明: -rwx------: 文件全部者對文件具備讀取、寫入和執行的權限。 -rwxr―r--: 文件全部者具備讀、寫與執行的權限,其餘用戶則具備讀取的權限。 -rw-rw-r-x: 文件全部者與同組用戶對文件具備讀寫的權限,而其餘用戶僅具備讀取和執行的權限。 drwx--x--x: 目錄全部者具備讀寫與進入目錄的權限,其餘用戶近能進入該目錄,卻沒法讀取任何數據。 Drwx------: 除了目錄全部者具備完整的權限以外,其餘用戶對該目錄徹底沒有任何權限。 每一個用戶都擁有本身的專屬目錄,一般集中放置在/home目錄下,這些專屬目錄的默認權限爲rwx------: 表示目錄全部者自己具備全部權限,其餘用戶沒法進入該目錄。執行mkdir命令所建立的目錄,其默認權限爲rwxr-xr-x,用戶能夠根據須要修改目錄的權限。 此外,默認的權限可用umask命令修改,用法很是簡單,只需執行umask 777 命令,便表明屏蔽全部的權限,於是以後創建的文件或目錄,其權限都變成000,依次類推。一般root賬號搭配umask命令的數值爲02二、027和 077,普通用戶則是採用002,這樣所產生的權限依次爲75五、750、700、775。有關權限的數字表示法,後面將會詳細說明。 用戶登陸系統時,用戶環境就會自動執行rmask命令來決定文件、目錄的默認權限。 特殊權限 其實文件與目錄設置不止這些,還有所謂的特殊權限。因爲特殊權限會擁有一些「特權」,於是用戶若無特殊需求,不該該啓用這些權限,避免安全方面出現嚴重漏洞,形成黑客入侵,甚至摧毀系統!!! s或S(SUID,Set UID):可執行的文件搭配這個權限,便能獲得特權,任意存取該文件的全部者能使用的所有系統資源。請注意具有SUID權限的文件,黑客常常利用這種權限,以SUID配上root賬號擁有者,無聲無息地在系統中開扇後門,供往後進出使用。 s或S(SGID,Set GID):設置在文件上面,其效果與SUID相同,只不過將文件全部者換成用戶組,該文件就能夠任意存取整個用戶組所能使用的系統資源。 T或T(Sticky):/tmp和 /var/tmp目錄供全部用戶暫時存取文件,亦即每位用戶皆擁有完整的權限進入該目錄,去瀏覽、刪除和移動文件。 由於SUID、SGID、Sticky佔用x的位置來表示,因此在表示上會有大小寫之分。加入同時開啓執行權限和SUID、SGID、Sticky,則權限表示字符是小寫的: -rwsr-sr-t 1 root root 4096 6月 23 08:17 conf 若是關閉執行權限,則表示字符會變成大寫: -rwSr-Sr-T 1 root root 4096 6月 23 08:17 conf 使用文件管理器來改變文件或目錄的權限 若是用戶要改變一個文件目錄的權限,右擊要改變權限的文件或者目錄,在彈出的快捷菜單中選擇「屬性」,系統將打開屬性對話框 在「屬性」對話框中,單擊「權限」標籤,就會打開「權限」選項卡。 在這裏你能夠修改文件或者目錄的全部者、組羣和其餘用戶的權限,並且能夠設置特殊權 對於特殊權限,最好不要設置,否則會帶來很嚴重的安全問題。 固然,在這裏你也能夠改變文件和目錄的全部者和所屬組。 使用chmod和數字改變文件或目錄的訪問權限 文件和目錄的權限表示,是用rwx這三個字符來表明全部者、用戶組和其餘用戶的權限。有時候,字符彷佛過於麻煩,所以還有另一種方法是以數字來表示權限,並且僅需三個數字。 r: 對應數值4 w: 對應數值2 x:對應數值1 -:對應數值0 數字設定的關鍵是mode的取值,一開始許多初學者會被搞糊塗,其實很簡單,咱們將rwx當作二進制數,若是有則有1表示,沒有則有0表示,那麼rwx r-x r- -則能夠表示成爲: 111 101 100 再將其每三位轉換成爲一個十進制數,就是754。 例如,咱們想讓a.txt這個文件的權限爲: 本身 同組用戶 其餘用戶 可讀 是 是 是 可寫 是 是 可執行 那麼,咱們先根據上表獲得權限串爲:rw-rw-r--,那麼轉換成二進制數就是110 110 100,再每三位轉換成爲一個十進制數,就獲得664,所以我 們執行命令: [root@localhost ~]# chmod 664 a.txt 按照上面的規則,rwx合起來就是4+2+1=7,一個rwxrwxrwx權限全開放的文件,數值表示爲777;而徹底不開放權限的文件「---------」其數字表示爲000。下面舉幾個例子: -rwx------:等於數字表示700。 -rwxr―r--:等於數字表示744。 -rw-rw-r-x:等於數字表示665。 drwx―x―x:等於數字表示711。 drwx------:等於數字表示700。 在文本模式下,可執行chmod命令去改變文件和目錄的權限。咱們先執行ls -l 看看目錄內的狀況: [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 能夠看到固然文件conkyrc.sample文件的權限是644,而後把這個文件的權限改爲777。執行下面命令 [root@localhost ~]# chmod 777 conkyrc.sample 而後ls -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文件的權限已經修改成rwxrwxrwx 若是要加上特殊權限,就必須使用4位數字才能表示。特殊權限的對應數值爲: s或 S (SUID):對應數值4。 s或 S (SGID):對應數值2。 t或 T :對應數值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 加入想一次修改某個目錄下全部文件的權限,包括子目錄中的文件權限也要修改,要使用參數-R表示啓動遞歸處理。 例如: [root@localhost ~]# chmod 777 /home/user 注:僅把/home/user目錄的權限設置爲rwxrwxrw [root@localhost ~]# chmod -R 777 /home/user 注:表示將整個/home/user目錄與其中的文件和子目錄的權限都設置爲rwxrwxrwx 使用命令chown改變目錄或文件的全部權 文件與目錄不只能夠改變權限,其全部權及所屬用戶組也能修改,和設置權限相似,用戶能夠經過圖形界面來設置,或執行chown命令來修改。 咱們先執行ls -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。 執行下面命令,把conkyrc.sample文件的全部權轉移到用戶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 要修改目錄的權限,使用-R參數就能夠了,方法和前面同樣。