Linux命令 umask,chmod使用
一、文件權(quán)限詳解
1、文件權(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)限:只允許用戶自己訪問(wèn);允許一個(gè)預(yù)先指定的用戶組中的用戶訪問(wèn);允許系統(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í)行。
我們可以用-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)限。
r:?對(duì)應(yīng)數(shù)值4
w:?對(duì)應(yīng)數(shù)值2
x:對(duì)應(yīng)數(shù)值1
-:對(duì)應(yīng)數(shù)值0
下面舉例說(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)限。
特殊權(quán)限
2、使用文件管理器來(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)然,在這里你也可以改變文件和目錄的所有者和所屬組。
3、使用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)的情況:
可以看到當(dāng)然文件conkyrc.sample文件的權(quán)限是644,然后把這個(gè)文件的權(quán)限改成777。執(zhí)行下面命令
?
然后ls?-l看一下執(zhí)行后的結(jié)果:
?
可以看到conkyrc.sample文件的權(quán)限已經(jīng)修改為rwxrwxrwx
4、使用命令chown改變目錄或文件的所有權(quán)
文件與目錄不僅可以改變權(quán)限,其所有權(quán)及所屬用戶組也能修改,和設(shè)置權(quán)限類似,用戶可以通過(guò)圖形界面來(lái)設(shè)置,或執(zhí)行chown命令來(lái)修改。
我們先執(zhí)行l(wèi)s?-l看看目錄情況:
?
可以看到conkyrc.sample文件的所屬用戶組為root,所有者為root。
執(zhí)行下面命令,把conkyrc.sample文件的所有權(quán)轉(zhuǎn)移到用戶user:
要改變所屬組,可使用下面命令:
?
要修改目錄的權(quán)限,使用-R參數(shù)就可以了,方法和前面一樣。
參考自http://m.blog.chinaunix.net/uid-25052030-id-174343.html
二、umask是什么東西
umask用于設(shè)置用戶創(chuàng)建文件或者目錄的默認(rèn)權(quán)限,umask設(shè)置的是權(quán)限的“補(bǔ)碼”,而我們常用chmod設(shè)置的是文件權(quán)限碼。一般在/etc/profile,HOME/.bashprofile或者HOME/.bashprofile或者HOME/.profile中設(shè)置umask值。
三、umask是用來(lái)做什么的
默認(rèn)情況下的umask值是022(可以用umask命令查看),此時(shí)你建立的文件默認(rèn)權(quán)限是644(6-0,6-2,6-2),建立的目錄的默認(rèn) 權(quán)限是755(7-0,7-2,7-2),可以用ls -l驗(yàn)證一下, 現(xiàn)在應(yīng)該知道umask的用途了吧,它是為了控制默認(rèn)權(quán)限的。
從上面可以看到, root 的umask是022(第一個(gè)0 代表特殊權(quán)限位,這里先不考慮), 創(chuàng)建的文件默認(rèn)權(quán)限是644,創(chuàng)建的目錄是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四、文件的基本權(quán)限
| ? | r | w | x |
| 文件 | ?可以查看文件內(nèi)容 | ?可以修改文件 | ?可以把文件啟動(dòng)為一個(gè)運(yùn)行的程序 |
| 目錄 | ?可以ls查看目錄中的文件名 | ?可以在目錄中創(chuàng)建或者刪除文件(只有w權(quán)限沒(méi)法創(chuàng)建,需要x配合) | ?可以使用cd?進(jìn)入這個(gè)目錄ls-l顯示目錄內(nèi)文件的元數(shù)據(jù)的信息 |
- 對(duì)于目錄,直接使用777-umask即可,就得到了最終結(jié)果。
- 對(duì)于文件,先使用666-umask。
- 如果對(duì)應(yīng)位上為偶數(shù):最終權(quán)限就是這個(gè)偶數(shù)值。
- 如果上面的對(duì)應(yīng)為上有奇數(shù),就對(duì)應(yīng)位+1。
五、chmod命令詳解
chmod----改變一個(gè)或多個(gè)文件的存取模式(mode)
chmod [options] mode files
只能文件屬主或特權(quán)用戶才能使用該功能來(lái)改變文件存取模式。mode可以是數(shù)字形式或以who opcode permission形式表示。who是可選的,默認(rèn)是a(所有用戶)。只能選擇一個(gè)opcode(操作碼)。可指定多個(gè)mode,以逗號(hào)分開(kāi)。
options:
who:
opcode:
permission:
作為選擇,我們多數(shù)用三位八進(jìn)制數(shù)字的形式來(lái)表示權(quán)限,第一位指定屬主的權(quán)限,第二位指定組權(quán)限,第三位指定其他用戶的權(quán)限,每位通過(guò)4(讀)、2(寫)、1(執(zhí)行)三種數(shù)值的和來(lái)確定權(quán)限。如6(4+2)代表有讀寫權(quán),7(4+2+1)有讀、寫和執(zhí)行的權(quán)限。
還可設(shè)置第四位,它位于三位權(quán)限序列的前面,第四位數(shù)字取值是4,2,1,代表意思如下:
4,執(zhí)行時(shí)設(shè)置用戶ID,用于授權(quán)給基于文件屬主的進(jìn)程,而不是給創(chuàng)建此進(jìn)程的用戶。
2,執(zhí)行時(shí)設(shè)置用戶組ID,用于授權(quán)給基于文件所在組的進(jìn)程,而不是基于創(chuàng)建此進(jìn)程的用戶。
1,設(shè)置粘著位。
實(shí)例:
$ chmod u+x file ? ? ? ? ? ? ? 給file的屬主增加執(zhí)行權(quán)限
$ chmod 751 file? ? ? ?給file的屬主分配讀寫執(zhí)行(7)的權(quán)限,給file的所在組分配讀、執(zhí)行(5)的權(quán)限,給其他用戶分配執(zhí)行(1)的權(quán)限
$ chmod u=rwx,g=rx,o=x file ? ? ?上例的另一種形式
$ chmod =r file ? ? ? ? ? ? ? ? 為所有用戶分配讀權(quán)限
$ chmod 444 file ? ? ? ? ? ? ?同上例
$ chmod a-wx,a+r ? file? ? ?同上例
$ chmod -R u+r directory? ? ? ?遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的權(quán)限
$ chmod 4755? ? ? ? ? ? ? ? ?設(shè)置用ID,給屬主分配讀、寫和執(zhí)行權(quán)限,給組和其他用戶分配讀、執(zhí)行的權(quán)限。
參考自https://www.cnblogs.com/younes/archive/2009/11/20/1607174.html
總結(jié)
以上是生活随笔為你收集整理的Linux命令 umask,chmod使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: djangohttp://127.0.0
- 下一篇: echarts案例链接