【Linux】詳解Linux權(quán)限管理-創(chuàng)新互聯(lián)

文章目錄

創(chuàng)新互聯(lián)建站于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元臺(tái)前做網(wǎng)站,已為上家服務(wù),為臺(tái)前各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792

1.Shell命令以及運(yùn)行原理

2.Linux權(quán)限的概念

2.1用戶介紹

2.2用戶切換指令 su

當(dāng)前所處目錄不變

當(dāng)前所處目錄改變

3.Linux 權(quán)限管理

3.1文件訪問(wèn)者的分類

3.1.1 擁有者

3.1.2 所屬組

3.1.3 other

3.1.4 總結(jié)

3.2文件類型和訪問(wèn)權(quán)限

3.2.1文件類型

3.2.2 基本權(quán)限

3.3文件權(quán)限值的表示方法

3.3.1字符表示法

3.3.2數(shù)字表示法

3.3.3總結(jié)?

3.4文件訪問(wèn)權(quán)限的相關(guān)設(shè)置方法

chmod指令?

chown指令

chgrp指令

umask 文件掩碼

3.5目錄的權(quán)限

概念?

粘滯位

4.總結(jié)


1.Shell命令以及運(yùn)行原理

??Linux嚴(yán)格意義上說(shuō)的是一個(gè)操作系統(tǒng),我們稱之為“核心(kernel) “ ,但我們一般用戶,不能直接使用kernel。而是通過(guò)kernel的“外殼”程序,也就是所謂的shell,來(lái)與kernel溝通。如下圖,藍(lán)色箭頭表示用戶通過(guò)Shell與Linux Kernel 溝通,綠色箭頭表示 Linux Kernel 通過(guò)Shell 返回給用戶一些信息。

??對(duì)比windows GUI(圖形用戶界面),我們操作windows 不是直接操作windows內(nèi)核,而是通過(guò)圖形接口,點(diǎn)擊,從而完成我們的操作(比如進(jìn)入D盤的操作,我們通常是雙擊D盤盤符,在Linux下就相當(dāng)于cd指令)。
? shell 對(duì)于Linux,有相同的作用,主要是對(duì)我們的指令進(jìn)行解析,解析指令給Linux內(nèi)核。反饋結(jié)果在通過(guò)內(nèi)核運(yùn)行出結(jié)果,通過(guò)shell解析給用戶。

? 那么shell存在的意義是什么呢?一方面,是為了幫忙進(jìn)行命令行傳遞和返回結(jié)果,另一方面是保護(hù)操作系統(tǒng)。此外,shell在執(zhí)行命令的時(shí)候,會(huì)創(chuàng)建子進(jìn)程來(lái)執(zhí)行。

2.Linux權(quán)限的概念 2.1用戶介紹

? 首先要清楚?Linux 下有兩種用戶:超級(jí)用戶(root)、普通用戶。(類似于 Windows 下的 管理員用戶和普通用戶。)

超級(jí)用戶(root):可以在linux系統(tǒng)下做任何事情,不受限制。
普通用戶:在linux下做有限的事情。
超級(jí)用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。

? 可以根據(jù)下圖來(lái)看,上層的紅色方框是 root ,一來(lái)根據(jù) [ ] 最左邊看出,而來(lái)也可以根據(jù)命令提示符 “#” 看出;下層紅色方框的用戶是 leo ,是一個(gè)普通用戶,使用 su leo ,保持當(dāng)前目錄不變,用戶換成leo,由于當(dāng)前目錄是屬于 root 的,leo沒有權(quán)限查看,所以用ls、ll 都會(huì)提示無(wú)權(quán)限,只有使用 cd ~ 進(jìn)入leo自己的家目錄,才可以操作。(后面會(huì)解釋為什么leo沒有權(quán)限,以及su leo,)

2.2用戶切換指令 su

? 如上圖,有時(shí)候我們會(huì)涉及到切換用戶的場(chǎng)景,此時(shí)就需要使用 su 指令。?

命令: su [用戶名]
功能:切換用戶。

? 例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用 su root(root可以省略),此時(shí)系統(tǒng)會(huì)提示輸入root 用戶的口令。

當(dāng)前所處目錄不變

? 使用 su [用戶名] 就可以實(shí)現(xiàn)當(dāng)前目錄不變,用戶改變。比如下方,一開始的用戶是root,并且處于root 的家目錄,然后使用 su leo 指令,切換為 leo 用戶,可以看出,當(dāng)前所處的目錄名是 root ,這是 root 用戶的目錄,使用 ls 指令,提示無(wú)權(quán)限查看。

? 同樣的,我現(xiàn)在是leo用戶,直接輸入 su 并回車,提示Password: ,這時(shí)輸入root的密碼即可,切換為root用戶,可以發(fā)現(xiàn)目錄是root的家目錄,使用ls指令查看當(dāng)前目錄的內(nèi)容,確實(shí)如此。

當(dāng)前所處目錄改變

? 使用 su - [用戶名] 可以實(shí)現(xiàn):將目錄改為 更換后的用戶的家目錄 ,并且用戶改變。比如下方,一開始是root 用戶,且所處目錄是root 的家目錄,然后使用 su - leo 切換為leo 用戶,切換之后可以看到,目錄也換為leo用戶的家目錄。

? 然后使用 su - 切換成超級(jí)用戶,看到,所處目錄也自動(dòng)切換成了root 的家目錄。

3.Linux 權(quán)限管理 3.1文件訪問(wèn)者的分類

? 文件訪問(wèn)者,是對(duì)于文件而言,誰(shuí)來(lái)訪問(wèn),具體可以分為 擁有者、所屬組、其他:

文件和文件目錄的擁有者: u---User
文件和文件目錄的所有者所在的組的用戶: g---Group
其它用戶: o---Others?

3.1.1 擁有者

? 顧名思義,就是文件的擁有者,所有者可以對(duì)文件進(jìn)行任何操作,畢竟屬于?“我” 的,“我” 想要?jiǎng)h除就刪除,想要修改就修改,隨便我怎么操作。

3.1.2 所屬組

? 比如一個(gè)團(tuán)隊(duì)A,協(xié)作開發(fā)一個(gè)項(xiàng)目,團(tuán)隊(duì)老大 小a 建立了一個(gè)目錄(即 小a 是這個(gè)目錄的擁有者),里面包含項(xiàng)目的所有內(nèi)容,那么,這個(gè)目錄總不可能只有 小a 可以訪問(wèn)吧?畢竟每一個(gè)組員都要負(fù)責(zé)自己的那一部分。但是,如果 小a 把這個(gè)目錄的權(quán)限打開,讓其他人可以訪問(wèn)、修改,固然達(dá)到了組員可以進(jìn)行操作的目的,但是——如果有另一個(gè)團(tuán)隊(duì)B,也在開發(fā)相同類型的項(xiàng)目,那么,這個(gè)團(tuán)隊(duì)里面的任何成員,只要找到 小a 建立的那個(gè)目錄,他們就可以隨便訪問(wèn)團(tuán)隊(duì)A的項(xiàng)目,這肯定不合適。要達(dá)到如下圖的要求,只有團(tuán)隊(duì)A的成員可以訪問(wèn)該項(xiàng)目。

? 所以,由于類似的需求,就產(chǎn)生了所屬組的概念,一般而言,一個(gè)文件的所屬組擁有對(duì)文件進(jìn)行操作的權(quán)限。當(dāng)然,所屬組是由一個(gè)一個(gè)用戶組成的,比如一個(gè)目錄的所屬組 里面的成員是 zhangsan、lisi、wnagwu,那么這三位用戶里的任何一個(gè),都可以對(duì)該目錄進(jìn)行的操作,他們?nèi)齻€(gè)對(duì)這個(gè)目錄的權(quán)限是一樣的,而其他人(除了root和這個(gè)目錄的擁有者)對(duì)該目錄只有 很有限的權(quán)限,或者沒有任何權(quán)限。

3.1.3 other

? 一個(gè)用戶,既不是文件的擁有者,也不是文件所屬組里的一員,那么對(duì)于這個(gè)文件而言,這個(gè)用戶就是該文件的other,對(duì)應(yīng)的權(quán)限一般比較少。

3.1.4 總結(jié)

? 在這里是否會(huì)將文件訪問(wèn)者和用戶搞混?其實(shí)很容易區(qū)分,用戶就相當(dāng)于我們生活中的一個(gè)一個(gè)人,而文件訪問(wèn)者就相當(dāng)于一個(gè)個(gè)身份。一個(gè)人,在公司是員工,在家里是父親/母親,這兩個(gè)身份不沖突。同樣的,對(duì)于不同的文件而言,用戶也可以是不同的訪問(wèn)者。

?如下,使用 ll 查看詳細(xì)信息時(shí),中間兩個(gè)內(nèi)容,第一個(gè)是代表該文件的擁有者,第二個(gè)內(nèi)容是代表該文件的所屬組。那么other如何判斷呢?很簡(jiǎn)單,當(dāng)一個(gè)用戶想要操作某個(gè)文件時(shí),這個(gè)用戶既不是擁有者,也不是所屬組,自然就是other了。

3.2文件類型和訪問(wèn)權(quán)限 3.2.1文件類型

? 如下,使用 ll 指令查看當(dāng)前目錄下的內(nèi)容的詳細(xì)信息時(shí),每一行的第一個(gè)字符,代表的就是該文件的類型。

d:文件夾
-:普通文件

l:軟鏈接(類似Windows的快捷方式)
b:塊設(shè)備文件(例如硬盤、光驅(qū)等)
p:管道文件
c:字符設(shè)備文件(例如屏幕等串口設(shè)備)
s:套接口文件

? 值得注意的是,Linux 環(huán)境下,文件類型和文件后綴無(wú)關(guān)。?首先看到 try.c 里面是一個(gè) C 語(yǔ)言的代碼。然后用gcc 編譯 ,得到 a.out 這個(gè)可執(zhí)行文件。當(dāng)文件后綴名是 .out ,可以執(zhí)行。后綴換成 .txt ,依然可以執(zhí)行。后綴換成 .c 依然可以執(zhí)行,但是,執(zhí)行 try.c ,卻不可以。充分說(shuō)明了,文件類型和文件后綴無(wú)關(guān)。

3.2.2 基本權(quán)限

? 如下,既然文件訪問(wèn)者分為三種類型,那么每一種類型都應(yīng)該有對(duì)應(yīng)的權(quán)限。在每一個(gè)文件的詳細(xì)信息中,除去開頭的一個(gè)字符,后面九個(gè)字符,頭三個(gè)是擁有者的權(quán)限,中間三個(gè)是所屬組的權(quán)限,最后三個(gè)是other的權(quán)限。(這些符號(hào)具體什么意思下文會(huì)介紹。)

? 文件的基本權(quán)限可以分為三個(gè):讀、寫、執(zhí)行,可以表示為 rwx? 。

讀(r/4): Read對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽該目錄信息的權(quán)限
寫(w/2): Write對(duì)文件而言,具有修改文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō)具有刪除移動(dòng)目錄內(nèi)文件的權(quán)限
執(zhí)行(x/1): execute對(duì)文件而言,具有執(zhí)行文件的權(quán)限;對(duì)目錄來(lái)說(shuō),具有進(jìn)入目錄的權(quán)限
“—”表示不具有該項(xiàng)權(quán)限?

3.3文件權(quán)限值的表示方法 3.3.1字符表示法

? 字符表示法順序是固定的,第一個(gè)位置是讀,第二個(gè)位置是寫,第三個(gè)位置是執(zhí)行,比如:rwx 表示讀、寫、執(zhí)行權(quán)限均有;-wx表示有寫、執(zhí)行權(quán)限,沒有讀的權(quán)限;r-x 表示有讀、執(zhí)行權(quán)限,沒有寫的權(quán)限;---表示什么權(quán)限都沒有。

3.3.2數(shù)字表示法

? 數(shù)字表示法是八進(jìn)制的。上文講到,三個(gè)字符為一組并且位置固定,那么從二進(jìn)制來(lái)看就把它這樣子看:對(duì)應(yīng)位置有該權(quán)限,就是1,沒有則是0。比如:000 表示什么權(quán)限都沒有;100表示有讀的權(quán)限,沒有其他權(quán)限;010表示有寫的權(quán)限,其他權(quán)限沒有;101表示有讀和執(zhí)行的權(quán)限,其他權(quán)限沒有。

? 上面是從二進(jìn)制來(lái)看,細(xì)分到每一個(gè)權(quán)限的。那么把三個(gè)權(quán)限看作整體,就是八進(jìn)制,比如 二進(jìn)制是000,對(duì)應(yīng)八進(jìn)制0,沒有任何權(quán)限; 二進(jìn)制 100,對(duì)應(yīng)八進(jìn)制4,只有讀權(quán)限; 二進(jìn)制 101 ,對(duì)應(yīng)八進(jìn)制5,有讀和執(zhí)行權(quán)限;二進(jìn)制 011,對(duì)應(yīng)八進(jìn)制3,有寫和執(zhí)行權(quán)限。

3.3.3總結(jié)?

? 如下可以很好總結(jié)這里的內(nèi)容:

權(quán)限二進(jìn)制八進(jìn)制描述
---0000沒有任何權(quán)限
--x0011只有執(zhí)行權(quán)限
-w-0102只有寫入權(quán)限
-wx0113只有寫入和執(zhí)行權(quán)限
r--1004只有只讀權(quán)限
r-x1015可讀可執(zhí)行權(quán)限
rw-1106可讀可寫權(quán)限
rwx1117可讀可寫可執(zhí)行權(quán)限
3.4文件訪問(wèn)權(quán)限的相關(guān)設(shè)置方法 chmod指令?

chmod
?功能: 設(shè)置文件的訪問(wèn)權(quán)限
格式: chmod [參數(shù)] 權(quán)限 文件名
常用選項(xiàng):
R ->遞歸修改目錄文件的權(quán)限
說(shuō)明:只有文件的擁有者和root才可以改變文件的權(quán)限

關(guān)于chmod命令的權(quán)限值的格式:?

① 用戶表示符+/-=權(quán)限字符

+:向權(quán)限范圍增加權(quán)限代號(hào)所表示的權(quán)限
-:向權(quán)限范圍取消權(quán)限代號(hào)所表示的權(quán)限
=:向權(quán)限范圍賦予權(quán)限代號(hào)所表示的權(quán)限
用戶符號(hào):
u:擁有者
g:擁有者同組用
o:其它用戶
a:所有用戶

②三位8進(jìn)制數(shù)字

? 如下,三位八進(jìn)制數(shù)字,第一位是擁有者的權(quán)限,第二位是所屬組的權(quán)限,第三位是其他的權(quán)限,對(duì)著上面的權(quán)限和八進(jìn)制表很容易看懂。

chown指令

? 該指令是更改文件擁有者。

?chown

功能:修改文件的擁有者
格式: chown [參數(shù)] 用戶名 文件名

? 如下,當(dāng)前用戶是root,所以可以隨意更改任意文件的擁有者。?

chgrp指令

? 不難猜測(cè),該指令是更改文件的所屬組。

chgrp

功能:修改文件或目錄的所屬組
格式: chgrp [參數(shù)] 用戶組名 文件名
常用選項(xiàng): -R 遞歸修改文件或目錄的所屬組

umask 文件掩碼

??新建文件夾默認(rèn)權(quán)限=0666,新建目錄默認(rèn)權(quán)限=0777。但實(shí)際上你所創(chuàng)建的文件和目錄,看到的權(quán)限往往不是上面這個(gè)值。原因就是創(chuàng)建文件或目錄的時(shí)候還要受到umask(掩碼)的影響。假設(shè)默認(rèn)權(quán)限是mask,則實(shí)際創(chuàng)建的出來(lái)的文件權(quán)限是:? mask & (~umask)。掩碼也是八進(jìn)制的,表示的也是權(quán)限,直白地說(shuō)就是,文件的實(shí)際權(quán)限,等于默認(rèn)權(quán)限 減去 掩碼的權(quán)限。

umask
?功能:
查看或修改文件掩碼

修改掩碼
格式: umask 權(quán)限值
說(shuō)明:將現(xiàn)有的存取權(quán)限減去權(quán)限掩碼后,即可產(chǎn)生建立文件時(shí)預(yù)設(shè)權(quán)限。超級(jí)用戶默認(rèn)掩碼值為0022,普通用戶默認(rèn)為0002

? 從下面也可以看出,普通用戶lijun 新建一個(gè)文件夾try,和文件try.c,可以看出其權(quán)限發(fā)呢別是775和664,和默認(rèn)權(quán)限777、666 相比,w權(quán)限都被去掉了。然后使用umask指令查看其掩碼,確實(shí)是0002.?

如何理解 mask & (~umask)?在這里給出個(gè)人的一些看法:

3.5目錄的權(quán)限 概念?

可執(zhí)行權(quán)限: 如果目錄沒有可執(zhí)行權(quán)限, 則無(wú)法cd到目錄中
可讀權(quán)限: 如果目錄沒有可讀權(quán)限, 則無(wú)法用ls等命令查看目錄中的文件內(nèi)容.
可寫權(quán)限: 如果目錄沒有可寫權(quán)限, 則無(wú)法在目錄中創(chuàng)建文件, 也無(wú)法在目錄中刪除文件

? 如下,首先查看當(dāng)前目錄下的詳細(xì)信息。

? 然后切換成 lijun 用戶,對(duì)目錄 leo 進(jìn)行操作,從詳細(xì)信息中可以看出,目錄leo 的 other沒有任何權(quán)限,且其擁有者和所屬組都是用戶 leo,那么用戶 lijun 對(duì)于目錄 leo 就是其他,所以第二個(gè)紅色個(gè)方框里面的任何操作都沒有權(quán)限。

? 但是,對(duì)于目錄 lijun,其擁有者的權(quán)限是rwx,并且其擁有者和所屬組都是用戶 lijun,當(dāng)用戶lijun對(duì)目錄 lijun進(jìn)行操作時(shí),擁有任何權(quán)限,如第三個(gè)紅色方框里面的內(nèi)容。

? 從下面可以看出,一開始對(duì)于目錄 lijun,給other加上可讀權(quán)限,切換成用戶 leo,用戶leo對(duì)于目錄 lijun 是other,所以只能讀,不能cd 進(jìn)入目錄 lijun。后來(lái)給目錄 lijun 的other加上 可執(zhí)行權(quán)限之后,用戶 leo才可以cd 進(jìn)入目錄 lijun。

粘滯位

? 如下圖,現(xiàn)在有一個(gè)public 目錄,其擁有者和所屬組是root,other 有 rwx 的權(quán)限,假設(shè)這個(gè)目錄是給各個(gè)用戶來(lái)備份一些資料的。

? 切換成leo用戶,該用戶對(duì)于public來(lái)說(shuō)是other,進(jìn)入public目錄之后,創(chuàng)建一個(gè)leo.txt 和 leodic,這是屬于leo 用戶的目錄和文件。并且向leo.txt 里面寫入一句話。

? 切換成lijun用戶,可見該用戶對(duì)于 leo.txt 是other,而leo.txt 的other 只具有讀的權(quán)限,所以可以讀,但是寫入內(nèi)容則沒有權(quán)限。但是,最重要的來(lái)了,我是 lijun 用戶,但是我卻可以刪除 leo.txt 這個(gè)屬于 leo的文件。這明顯不合理,為什么我會(huì)可以刪除 leo.txt 呢?這是因?yàn)椋瑢?duì)于public目錄,我有寫的權(quán)限,所以我可以刪除public目錄里面的內(nèi)容。但是, leo.txt 是用戶leo的,可能記載著他的一些日志或者重要的內(nèi)容,我怎么可以直接就刪掉呢?這不合適,所以對(duì)于這樣的問(wèn)題,Linux引入了粘滯位的概念。

? 粘滯位的作用是:

當(dāng)一個(gè)目錄被設(shè)置為"粘滯位"(用chmod +t),則該目錄下的文件只能由
一、超級(jí)管理員刪除
二、該目錄的所有者刪除
三、該文件的所有者刪除

? 如下,先給public 這個(gè)目錄添加粘滯位,然后切換為用戶lijun ,進(jìn)入 public,試圖刪除用戶leo的目錄和文件夾,發(fā)現(xiàn)不可以。這就是粘滯位。?

注意,粘滯位只在other 所具有的權(quán)限里面,擁有著和所屬組是不具備t 權(quán)限的。如下,即使給所有用戶加上 t 權(quán)限,也只有other 得到了改變。

4.總結(jié)

? 1.如下,使用 ll 指令查看的時(shí)候,詳細(xì)信息解讀如圖。至于在權(quán)限后面的那個(gè)數(shù)字,對(duì)于目錄而言,是指它的第一級(jí)子目錄的個(gè)數(shù);對(duì)于其他文件而言,表示指向它的鏈接文件的個(gè)數(shù)。

2.雖然文件類型和文件后綴無(wú)關(guān),但是,這是對(duì)于Linux 系統(tǒng)而言。對(duì)于Linux 里面的工具,比如 gcc 等,文件后綴和它有關(guān)。如下,我把try.c 名字改成 try.txt ,但是里面的內(nèi)容不變,依然是一個(gè)C 語(yǔ)言的代碼。但是,此時(shí)用gcc 編譯,卻發(fā)現(xiàn)不可以。

? 3. 權(quán)限=人+文件屬性。 文件屬性=文件類型+文件權(quán)限。

關(guān)于 Linux 的權(quán)限,暫時(shí)就寫到這里,如有錯(cuò)誤,歡迎指正!!

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:【Linux】詳解Linux權(quán)限管理-創(chuàng)新互聯(lián)
分享URL:http://bm7419.com/article48/hchhp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、虛擬主機(jī)、響應(yīng)式網(wǎng)站建站公司、小程序開發(fā)、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)