Linux命令 umask,chmod使用
一、文件權限詳解
1、文件權限介紹
在linux中的每一個文件或目錄都包含有訪問權限,這些訪問權限決定了誰能訪問和如何訪問這些文件和目錄。
通過設定權限可以從以下三種訪問方式限制訪問權限:只允許用戶自己訪問;允許一個預先指定的用戶組中的用戶訪問;允許系統中的任何用戶訪問。同時,用戶能夠控制一個給定的文件或目錄的訪問程度。一個文件活目錄可能有讀、寫及執行權限。當創建一個文件時,系統會自動地賦予文件所有者讀和寫的權限,這樣可以允許所有者能夠顯示文件內容和修改文件。文件所有者可以將這些權限改變為任何他想指定的權限。一個文件也許只有讀權限,禁止任何修改。文件也可能只有執行權限,允許它想一個程序一樣執行。
我們可以用-l參數的ls命令顯示文件的詳細信息,其中包括權限。如下所示:
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
當執行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,執行):對文件而言,具有執行文件的權限;對目錄了來說該用戶具有進入目錄的權限。
-:表示不具有該項權限。
r:?對應數值4
w:?對應數值2
x:對應數值1
-:對應數值0
下面舉例說明:
-rwx------:?文件所有者對文件具有讀取、寫入和執行的權限。
-rwxr―r--:?文件所有者具有讀、寫與執行的權限,其他用戶則具有讀取的權限。
-rw-rw-r-x:?文件所有者與同組用戶對文件具有讀寫的權限,而其他用戶僅具有讀取和執行的權限。
drwx--x--x:?目錄所有者具有讀寫與進入目錄的權限,其他用戶近能進入該目錄,卻無法讀取任何數據。
Drwx------:?除了目錄所有者具有完整的權限之外,其他用戶對該目錄完全沒有任何權限。
特殊權限
2、使用文件管理器來改變文件或目錄的權限
如果用戶要改變一個文件目錄的權限,右擊要改變權限的文件或者目錄,在彈出的快捷菜單中選擇“屬性”,系統將打開屬性對話框
在“屬性”對話框中,單擊“權限”標簽,就會打開“權限”選項卡。
在這里你可以修改文件或者目錄的所有者、組群和其他用戶的權限,而且可以設置特殊權
對于特殊權限,最好不要設置,不然會帶來很嚴重的安全問題。
當然,在這里你也可以改變文件和目錄的所有者和所屬組。
3、使用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?看看目錄內的情況:
可以看到當然文件conkyrc.sample文件的權限是644,然后把這個文件的權限改成777。執行下面命令
?
然后ls?-l看一下執行后的結果:
?
可以看到conkyrc.sample文件的權限已經修改為rwxrwxrwx
4、使用命令chown改變目錄或文件的所有權
文件與目錄不僅可以改變權限,其所有權及所屬用戶組也能修改,和設置權限類似,用戶可以通過圖形界面來設置,或執行chown命令來修改。
我們先執行ls?-l看看目錄情況:
?
可以看到conkyrc.sample文件的所屬用戶組為root,所有者為root。
執行下面命令,把conkyrc.sample文件的所有權轉移到用戶user:
要改變所屬組,可使用下面命令:
?
要修改目錄的權限,使用-R參數就可以了,方法和前面一樣。
參考自http://m.blog.chinaunix.net/uid-25052030-id-174343.html
二、umask是什么東西
umask用于設置用戶創建文件或者目錄的默認權限,umask設置的是權限的“補碼”,而我們常用chmod設置的是文件權限碼。一般在/etc/profile,HOME/.bashprofile或者HOME/.bashprofile或者HOME/.profile中設置umask值。
三、umask是用來做什么的
默認情況下的umask值是022(可以用umask命令查看),此時你建立的文件默認權限是644(6-0,6-2,6-2),建立的目錄的默認 權限是755(7-0,7-2,7-2),可以用ls -l驗證一下, 現在應該知道umask的用途了吧,它是為了控制默認權限的。
從上面可以看到, root 的umask是022(第一個0 代表特殊權限位,這里先不考慮), 創建的文件默認權限是644,創建的目錄是755。
[root@bogon test]# id uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 [root@bogon test]# umask [root@bogon test]# touch a.txt [root@bogon test]# ls -l total 0 -rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt [root@bogon test]# mkdir b [root@bogon test]# ls -l total 0 -rw-r--r--. 1 root root 0 Jul 3 00:40 a.txt drwxr-xr-x. 2 root root 6 Jul 3 00:41 b四、文件的基本權限
| ? | r | w | x |
| 文件 | ?可以查看文件內容 | ?可以修改文件 | ?可以把文件啟動為一個運行的程序 |
| 目錄 | ?可以ls查看目錄中的文件名 | ?可以在目錄中創建或者刪除文件(只有w權限沒法創建,需要x配合) | ?可以使用cd?進入這個目錄ls-l顯示目錄內文件的元數據的信息 |
- 對于目錄,直接使用777-umask即可,就得到了最終結果。
- 對于文件,先使用666-umask。
- 如果對應位上為偶數:最終權限就是這個偶數值。
- 如果上面的對應為上有奇數,就對應位+1。
五、chmod命令詳解
chmod----改變一個或多個文件的存取模式(mode)
chmod [options] mode files
只能文件屬主或特權用戶才能使用該功能來改變文件存取模式。mode可以是數字形式或以who opcode permission形式表示。who是可選的,默認是a(所有用戶)。只能選擇一個opcode(操作碼)。可指定多個mode,以逗號分開。
options:
who:
opcode:
permission:
作為選擇,我們多數用三位八進制數字的形式來表示權限,第一位指定屬主的權限,第二位指定組權限,第三位指定其他用戶的權限,每位通過4(讀)、2(寫)、1(執行)三種數值的和來確定權限。如6(4+2)代表有讀寫權,7(4+2+1)有讀、寫和執行的權限。
還可設置第四位,它位于三位權限序列的前面,第四位數字取值是4,2,1,代表意思如下:
4,執行時設置用戶ID,用于授權給基于文件屬主的進程,而不是給創建此進程的用戶。
2,執行時設置用戶組ID,用于授權給基于文件所在組的進程,而不是基于創建此進程的用戶。
1,設置粘著位。
實例:
$ chmod u+x file ? ? ? ? ? ? ? 給file的屬主增加執行權限
$ chmod 751 file? ? ? ?給file的屬主分配讀寫執行(7)的權限,給file的所在組分配讀、執行(5)的權限,給其他用戶分配執行(1)的權限
$ chmod u=rwx,g=rx,o=x file ? ? ?上例的另一種形式
$ chmod =r file ? ? ? ? ? ? ? ? 為所有用戶分配讀權限
$ chmod 444 file ? ? ? ? ? ? ?同上例
$ chmod a-wx,a+r ? file? ? ?同上例
$ chmod -R u+r directory? ? ? ?遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的權限
$ chmod 4755? ? ? ? ? ? ? ? ?設置用ID,給屬主分配讀、寫和執行權限,給組和其他用戶分配讀、執行的權限。
參考自https://www.cnblogs.com/younes/archive/2009/11/20/1607174.html
總結
以上是生活随笔為你收集整理的Linux命令 umask,chmod使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: djangohttp://127.0.0
- 下一篇: 【Linux】crontab定时任务配置