Linux教程:http://www.fdlly.com/m/linux
@[toc]
文件和目錄的權(quán)限
簡(jiǎn)介:用戶對(duì)一個(gè)文件或目錄具有訪問權(quán)限,這些訪問權(quán)限決定了誰能訪問甸赃,以及如何范圍這些文件和目錄。通過設(shè)置權(quán)限可以限制或允許以下三種用戶訪問:
- 文件的用戶所有者(屬主)
- 文件的組群所有者(用戶所在組的同組用戶)
- 系統(tǒng)中的其他用戶
文件和目錄和權(quán)限簡(jiǎn)介
為了系統(tǒng)的安全性缩举,Linux對(duì)文件和目錄賦予了3種屬性
- 可讀性:對(duì)于文件而言签财,可以讀取文件內(nèi)容;對(duì)于目錄來說栋盹,可以瀏覽目錄
- 可寫性:對(duì)于文件而言,可以新增敷矫、修改文件內(nèi)容例获;對(duì)于目錄來說,可以有刪除曹仗、移動(dòng)目錄內(nèi)文件
- 可執(zhí)行性:對(duì)于文件而言榨汤,可以執(zhí)行文件;對(duì)于目錄來說怎茫,其它用戶可以進(jìn)入目錄收壕,如果目錄沒有可執(zhí)行性,則其它用戶不能進(jìn)入此目錄
對(duì)應(yīng)3種屬性轨蛤,Linux文件常用權(quán)限分為4種權(quán)限
-
可讀性權(quán)限:用
r
表示蜜宪;對(duì)于文件而言,該用戶具有讀取文件內(nèi)容的權(quán)限祥山;對(duì)于目錄來說圃验,該用戶具有瀏覽目錄的權(quán)限 -
可寫性權(quán)限:用
w
表示;對(duì)于文件而言枪蘑,該用戶具有新增损谦、修改文件內(nèi)容的權(quán)限;對(duì)于目錄來說岳颇,該用戶具有刪除照捡、移動(dòng)目錄內(nèi)文件的權(quán)限 -
可執(zhí)行性權(quán)限:用
x
表示;對(duì)于文件而言话侧,該用戶具有執(zhí)行文件的權(quán)限栗精;對(duì)于目錄來說,其它用戶具有進(jìn)入目錄的權(quán)限瞻鹏,如果目錄沒有可執(zhí)行權(quán)限悲立,則其它用戶不能進(jìn)入此目錄 -
無權(quán)限:用
-
表示,表示具備該權(quán)限
如何查看文件和目錄的權(quán)限信息
在Linux系統(tǒng)中新博,使用ls命令
就可以查看文件和目錄的權(quán)限信息薪夕,不帶任何參數(shù)的ls命令只顯示文件名,要想顯示文件和目錄的權(quán)限信息赫悄,需要使用使用ls -l
命令來顯示文件和目錄的詳細(xì)信息原献,也可使用ls -al
命令顯示全部文件和目錄的詳細(xì)信息
[root@localhost ~]# ls -l /
總用量 16
lrwxrwxrwx. 1 root root 7 11月 20 21:21 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 11月 20 21:29 boot
drwxr-xr-x. 20 root root 3220 12月 3 14:09 dev
drwxr-xr-x. 75 root root 8192 12月 3 01:49 etc
drwxr-xr-x. 3 root root 16 12月 3 00:34 home
lrwxrwxrwx. 1 root root 7 11月 20 21:21 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 11月 20 21:21 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 4月 11 2018 media
drwxr-xr-x. 2 root root 6 4月 11 2018 mnt
drwxr-xr-x. 2 root root 6 4月 11 2018 opt
dr-xr-xr-x. 112 root root 0 12月 3 14:08 proc
dr-xr-x---. 5 root root 190 11月 22 22:22 root
drwxr-xr-x. 25 root root 740 12月 3 14:14 run
lrwxrwxrwx. 1 root root 8 11月 20 21:21 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 4月 11 2018 srv
dr-xr-xr-x. 13 root root 0 12月 3 14:09 sys
drwxrwxrwt. 10 root root 240 12月 3 14:24 tmp
drwxr-xr-x. 13 root root 155 11月 20 21:21 usr
drwxr-xr-x. 19 root root 267 11月 20 21:32 var
第一列顯示文檔類型與執(zhí)行權(quán)限,由10個(gè)字符組成埂淮,分為4部分姑隅,其中文件權(quán)限標(biāo)志位由3部分組成,如drwxr-xr-x
倔撞,如下圖所示
- 第一位d表示普通文件
- 接下來的3位
rwx
表示文件屬主具有可讀可寫可執(zhí)行的權(quán)限 - 接下來的3位
r-x
表示與屬主屬于同一組的用戶具有可讀可執(zhí)行權(quán)限讲仰,不具備可寫權(quán)限 - 接下來的3位
r-x
表示其它用戶具有可讀可執(zhí)行權(quán)限,不具備可寫權(quán)限
文件和目錄的屬主和屬組
對(duì)于文件來說痪蝇,它都有一個(gè)特定的所有者鄙陡,也就是對(duì)該文件具有所有權(quán)的用戶。同時(shí)霹俺,在Linux系統(tǒng)中柔吼,用戶是按組分類的,一個(gè)用戶屬于一個(gè)或多個(gè)組丙唧。文件所有者以外的用戶又可以分為文件所有者的同組用戶和其他用戶愈魏。
因此,Linux系統(tǒng)按文件所有者
想际、文件所有者同組用戶
和其他用戶
來規(guī)定了不同的文件訪問權(quán)限培漏。
對(duì)于文件和目錄而言,可以劃分為3類用戶
- 屬主用戶:文件或目錄的所有者
- 屬組用戶:屬主所在的屬組的同組用戶
- 其它用戶:除了屬主和屬組之外的用戶
對(duì)于 root 用戶來說胡本,一般情況下牌柄,文件的權(quán)限對(duì)其不起作用。
設(shè)置文件和目錄基本權(quán)限
3種權(quán)限按照不同方式可以分為字符模式和數(shù)字模式
- 字符模式:4種權(quán)限可以用r侧甫、w珊佣、x蹋宦、-表示,這種方法稱為字符模式
- 數(shù)字模式:4種權(quán)限可以用4咒锻、2冷冗、1、0表示惑艇,這種方法稱為數(shù)字模式
所以按照模式的不同設(shè)置文件和目錄基本權(quán)限也分為兩種蒿辙,一種是文字設(shè)定法設(shè)置權(quán)限,另一種是數(shù)字設(shè)定法設(shè)置權(quán)限
chmod語法
功能說明:
語法
chmod [操作對(duì)象] [操作符號(hào)] [權(quán)限] [文件|目錄]
選項(xiàng)及參數(shù)
-
-c
滨巴,--changes
:效果類似于-v參數(shù)思灌,但僅回報(bào)更改的部分 -
-f
,--quiet
恭取,--silent
:不顯示錯(cuò)誤信息 -
-R
泰偿,--recursive
:遞歸處理,將指定目錄下的所有文件及子目錄一并處理 -
-v
秽荤,--verbose
:顯示指令執(zhí)行過程 -
--help
:在線幫助 -
--reference=<參考文件或目錄>
:把指定文件或目錄的權(quán)限全部設(shè)成和參考文件或目錄的權(quán)限相同 -
--version
:顯示版本信息
權(quán)限范圍的表示法如下
-
u
:User甜奄,即文件或目錄的擁有者 -
g
:Group,即文件或目錄的所屬群組 -
o
:Other窃款,除了文件或目錄擁有者或所屬群組之外课兄,其它用戶皆屬于這個(gè)范圍 -
a
:All,即全部的用戶晨继,包括擁有者烟阐,所屬群組以及其它用戶
有關(guān)權(quán)限代號(hào)的部分,列表與下
-
r
:讀取權(quán)限紊扬,數(shù)字代號(hào)為4 -
w
:寫入權(quán)限蜒茄,數(shù)字代號(hào)為2 -
x
:執(zhí)行或切換權(quán)限,數(shù)字代號(hào)為1 -
-
:不具任何權(quán)限餐屎,數(shù)字代號(hào)為0 -
s
:特殊功能說明:變更文件或目錄的權(quán)限
權(quán)限操作說明檀葛,列表與下
-
<權(quán)限范圍>+<權(quán)限設(shè)置>
:開啟權(quán)限范圍的文件或目錄的該項(xiàng)權(quán)限設(shè)置 -
<權(quán)限范圍>-<權(quán)限設(shè)置>
:關(guān)閉權(quán)限范圍的文件或目錄的該項(xiàng)權(quán)限設(shè)置 -
<權(quán)限范圍>=<權(quán)限設(shè)置>
:指定權(quán)限范圍的文件或目錄的該項(xiàng)權(quán)限設(shè)置
簡(jiǎn)單版說明
<table><tr><td>部分</td><td>選項(xiàng)</td><td>選項(xiàng)含義</td></tr><tr><td rowspan="5">操作對(duì)象</td></tr><tr><td>u</td><td>用戶所有者:即文件或目錄的所有者</td></tr><tr><td>g</td><td>組群所有者:即與文件的用戶所有者有相同組群GID的所有用戶</td></tr><tr><td>o</td><td>其它用戶</td></tr><tr><td>a</td><td>所有用戶:這是系統(tǒng)默認(rèn)值</td></tr><tr><td rowspan="4">操作符號(hào)</td></tr><tr><td>+</td><td>添加權(quán)限</td></tr><tr><td>-</td><td>取消權(quán)限</td></tr><tr><td>=</td><td>賦予給定權(quán)限并取消原有權(quán)限(如果有的話)</td></tr><tr><td rowspan="4">權(quán)限</td></tr><tr><td>r</td><td>讀取權(quán)限</td></tr><tr><td>w</td><td>寫入權(quán)限</td></tr><tr><td>x</td><td>可執(zhí)行權(quán)限</td></tr></table>
文字設(shè)定法設(shè)置權(quán)限
對(duì)文件所有者添加權(quán)限
[root@localhost ~]# chmod u+w text.txt
對(duì)文件所有者取消權(quán)限
[root@localhost ~]# chmod u-w text.txt
對(duì)文件所有者設(shè)置權(quán)限
[root@localhost ~]# chmod u=w text.txt
對(duì)文件所有者,組群所有者腹缩,其它用戶添加權(quán)限
[root@localhost ~]# chmod u+rwx,g+rx,o+r text.txt
對(duì)文件所有者屿聋,組群所有者,其它用戶取消權(quán)限
[root@localhost ~]# chmod u-rwx,g-rx,o-r text.txt
對(duì)文件所有者藏鹊,組群所有者润讥,其它用戶設(shè)置權(quán)限
[root@localhost ~]# chmod u=rwx,g=rx,o=r text.txt
數(shù)字設(shè)定法設(shè)置權(quán)限
數(shù)字表示法就是將4種權(quán)限r(nóng)、w盘寡、x楚殿、-分別用4、2竿痰、1脆粥、0表示砌溺,然后再把授予的權(quán)限數(shù)字相加而成,如下面實(shí)例所示
權(quán)限數(shù)字說明實(shí)例
原始權(quán)限 | 轉(zhuǎn)換為數(shù)字 | 數(shù)字表示法 | 說明 |
---|---|---|---|
rwxrwxrwx | (421)(421)(421) | 777 | 用戶所有者具有讀取变隔、寫入抚吠、執(zhí)行權(quán)限;組群所有者具有讀取弟胀、寫入、執(zhí)行權(quán)限喊式;其它用戶具有讀取孵户、寫入、執(zhí)行權(quán)限 |
數(shù)字及其對(duì)應(yīng)權(quán)限
數(shù)字表示法雖然簡(jiǎn)單岔留,但是可讀性較差夏哭,必須經(jīng)發(fā)換算才能夠知道相應(yīng)的權(quán)限設(shè)置
數(shù)字 | 轉(zhuǎn)換過的數(shù)字 | 對(duì)應(yīng)權(quán)限 |
---|---|---|
7 | 4+2+1 | rwx |
6 | 4+2+0 | rw- |
5 | 4+0+1 | r-w |
4 | 4+0+0 | r-- |
3 | 0+2+1 | -wx |
2 | 0+0+0 | -w- |
1 | 0+0+1 | --x |
0 | 0+0+0 | --- |
設(shè)置用戶所有者擁有讀取、寫入献联、執(zhí)行權(quán)限
設(shè)置用戶所有者擁有讀取竖配、寫入、執(zhí)行權(quán)限
[root@localhost ~]# chmod 700 text.txt
設(shè)置組群所有者擁有讀取里逆、寫入进胯、執(zhí)行權(quán)限
設(shè)置用戶所有者擁有讀取、寫入原押、執(zhí)行權(quán)限胁镐,組群所有者擁有讀取、寫入诸衔、執(zhí)行權(quán)限
[root@localhost ~]# chmod 770 text.txt
設(shè)置其它用戶擁有讀取盯漂、寫入、執(zhí)行權(quán)限
設(shè)置用戶所有者擁有讀取笨农、寫入就缆、執(zhí)行權(quán)限,組群所有者擁有讀取谒亦、寫入竭宰、執(zhí)行權(quán)限,其它用戶擁有讀取诊霹、寫入羞延、執(zhí)行權(quán)限
[root@localhost ~]# chmod 777 text.txt
設(shè)置文件和目錄的特殊權(quán)限
在Linux系統(tǒng)中,除了可讀性權(quán)限``可寫性權(quán)限``可執(zhí)行性權(quán)限
外脾还,還有三個(gè)特殊的權(quán)限伴箩,分別是SUID、SCID和Sticky
特殊權(quán)限簡(jiǎn)介
用戶如果沒有特殊的需求鄙漏,一般不需要啟用特殊權(quán)限嗤谚,避免出現(xiàn)安全問題的隱患
特殊權(quán)限有以下幾種類型
SUID
:對(duì)一個(gè)可執(zhí)行文件棺蛛,不是以發(fā)起者身份來獲取資源,而是以可執(zhí)行文件的用戶所有者身份來執(zhí)行
SGID
:對(duì)于一個(gè)可執(zhí)行文件巩步,不是以發(fā)起者身份來獲取資源旁赊,而是以可執(zhí)行文件的組群所有者身份來執(zhí)行
Sticky
:對(duì)文件或目錄設(shè)置Sticky之后,盡管其他用戶有寫權(quán)限椅野,也必須由文件所有者執(zhí)行刪除和移動(dòng)等操作
因?yàn)镾UID终畅、SGID、Sticky占用x(執(zhí)行權(quán)限)的位置來表示竟闪,所以在表示上會(huì)有大小寫之分离福。假如同時(shí)開啟執(zhí)行權(quán)限和SUID、SGID炼蛤、Sticky妖爷,則權(quán)限表示字符是小寫的,如下所示
-rwsr-sr-t 1 root root 4096 8月 16 08:16 text.txt
如果關(guān)閉執(zhí)行權(quán)限理朋,則表示字符會(huì)變成大寫
-rwSr-Sr-T 1 root root 4096 8月 16 08:16 text.txt
文字設(shè)定法設(shè)置特殊權(quán)限
添加SUID特殊權(quán)限
[root@localhost ~]# chmod u+s text.txt
刪除SGID特殊權(quán)限
[root@localhost ~]# chmod g+s text.txt
設(shè)置Sticky特殊權(quán)限
[root@localhost ~]# chmod o=t text.txt
數(shù)字設(shè)定法設(shè)置特殊權(quán)限
如果要設(shè)置特殊權(quán)限絮识,就必須使用四位數(shù)字才能表示
特殊權(quán)限的對(duì)應(yīng)數(shù)值如下所示
-
SUID
:對(duì)應(yīng)數(shù)值4 -
SGID
:對(duì)應(yīng)數(shù)值2 -
Sticky
:對(duì)應(yīng)數(shù)值1
設(shè)置SUID特殊權(quán)限
[root@localhost ~]# chmod 4000 text.txt
設(shè)置SGID特殊權(quán)限
[root@localhost ~]# chmod 2000 text.txt
設(shè)置Sticky特殊權(quán)限
[root@localhost ~]# chmod 1000 text.txt
設(shè)置具有SUID、SGID嗽上、Sticky權(quán)限
[root@localhost ~]# chmod 7000 text.txt