文章目錄
1.Shell命令以及運行原理
2.Linux權(quán)限的概念
2.1用戶介紹
2.2用戶切換指令 su
當(dāng)前所處目錄不變
當(dāng)前所處目錄改變
3.Linux 權(quán)限管理
3.1文件訪問者的分類
3.1.1 擁有者
3.1.2 所屬組
3.1.3 other
3.1.4 總結(jié)
3.2文件類型和訪問權(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文件訪問權(quán)限的相關(guān)設(shè)置方法
chmod指令?
chown指令
chgrp指令
umask 文件掩碼
3.5目錄的權(quán)限
概念?
粘滯位
4.總結(jié)
??Linux嚴(yán)格意義上說的是一個操作系統(tǒng),我們稱之為“核心(kernel) “ ,但我們一般用戶,不能直接使用kernel。而是通過kernel的“外殼”程序,也就是所謂的shell,來與kernel溝通。如下圖,藍(lán)色箭頭表示用戶通過Shell與Linux Kernel 溝通,綠色箭頭表示 Linux Kernel 通過Shell 返回給用戶一些信息。
??對比windows GUI(圖形用戶界面),我們操作windows 不是直接操作windows內(nèi)核,而是通過圖形接口,點擊,從而完成我們的操作(比如進(jìn)入D盤的操作,我們通常是雙擊D盤盤符,在Linux下就相當(dāng)于cd指令)。
? shell 對于Linux,有相同的作用,主要是對我們的指令進(jìn)行解析,解析指令給Linux內(nèi)核。反饋結(jié)果在通過內(nèi)核運行出結(jié)果,通過shell解析給用戶。
? 那么shell存在的意義是什么呢?一方面,是為了幫忙進(jìn)行命令行傳遞和返回結(jié)果,另一方面是保護(hù)操作系統(tǒng)。此外,shell在執(zhí)行命令的時候,會創(chuàng)建子進(jìn)程來執(zhí)行。
2.Linux權(quán)限的概念 2.1用戶介紹? 首先要清楚?Linux 下有兩種用戶:超級用戶(root)、普通用戶。(類似于 Windows 下的 管理員用戶和普通用戶。)
超級用戶(root):可以在linux系統(tǒng)下做任何事情,不受限制。
普通用戶:在linux下做有限的事情。
超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。
? 可以根據(jù)下圖來看,上層的紅色方框是 root ,一來根據(jù) [ ] 最左邊看出,而來也可以根據(jù)命令提示符 “#” 看出;下層紅色方框的用戶是 leo ,是一個普通用戶,使用 su leo ,保持當(dāng)前目錄不變,用戶換成leo,由于當(dāng)前目錄是屬于 root 的,leo沒有權(quán)限查看,所以用ls、ll 都會提示無權(quán)限,只有使用 cd ~ 進(jìn)入leo自己的家目錄,才可以操作。(后面會解釋為什么leo沒有權(quán)限,以及su leo,)
? 如上圖,有時候我們會涉及到切換用戶的場景,此時就需要使用 su 指令。?
命令: su [用戶名]
功能:切換用戶。
? 例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用 su root(root可以省略),此時系統(tǒng)會提示輸入root 用戶的口令。
當(dāng)前所處目錄不變? 使用 su [用戶名] 就可以實現(xiàn)當(dāng)前目錄不變,用戶改變。比如下方,一開始的用戶是root,并且處于root 的家目錄,然后使用 su leo 指令,切換為 leo 用戶,可以看出,當(dāng)前所處的目錄名是 root ,這是 root 用戶的目錄,使用 ls 指令,提示無權(quán)限查看。
? 同樣的,我現(xiàn)在是leo用戶,直接輸入 su 并回車,提示Password: ,這時輸入root的密碼即可,切換為root用戶,可以發(fā)現(xiàn)目錄是root的家目錄,使用ls指令查看當(dāng)前目錄的內(nèi)容,確實如此。
? 使用 su - [用戶名] 可以實現(xiàn):將目錄改為 更換后的用戶的家目錄 ,并且用戶改變。比如下方,一開始是root 用戶,且所處目錄是root 的家目錄,然后使用 su - leo 切換為leo 用戶,切換之后可以看到,目錄也換為leo用戶的家目錄。
? 然后使用 su - 切換成超級用戶,看到,所處目錄也自動切換成了root 的家目錄。
? 文件訪問者,是對于文件而言,誰來訪問,具體可以分為 擁有者、所屬組、其他:
3.1.1 擁有者文件和文件目錄的擁有者: u---User
文件和文件目錄的所有者所在的組的用戶: g---Group
其它用戶: o---Others?
? 顧名思義,就是文件的擁有者,所有者可以對文件進(jìn)行任何操作,畢竟屬于?“我” 的,“我” 想要刪除就刪除,想要修改就修改,隨便我怎么操作。
3.1.2 所屬組? 比如一個團(tuán)隊A,協(xié)作開發(fā)一個項目,團(tuán)隊老大 小a 建立了一個目錄(即 小a 是這個目錄的擁有者),里面包含項目的所有內(nèi)容,那么,這個目錄總不可能只有 小a 可以訪問吧?畢竟每一個組員都要負(fù)責(zé)自己的那一部分。但是,如果 小a 把這個目錄的權(quán)限打開,讓其他人可以訪問、修改,固然達(dá)到了組員可以進(jìn)行操作的目的,但是——如果有另一個團(tuán)隊B,也在開發(fā)相同類型的項目,那么,這個團(tuán)隊里面的任何成員,只要找到 小a 建立的那個目錄,他們就可以隨便訪問團(tuán)隊A的項目,這肯定不合適。要達(dá)到如下圖的要求,只有團(tuán)隊A的成員可以訪問該項目。
? 所以,由于類似的需求,就產(chǎn)生了所屬組的概念,一般而言,一個文件的所屬組擁有對文件進(jìn)行操作的權(quán)限。當(dāng)然,所屬組是由一個一個用戶組成的,比如一個目錄的所屬組 里面的成員是 zhangsan、lisi、wnagwu,那么這三位用戶里的任何一個,都可以對該目錄進(jìn)行的操作,他們?nèi)齻€對這個目錄的權(quán)限是一樣的,而其他人(除了root和這個目錄的擁有者)對該目錄只有 很有限的權(quán)限,或者沒有任何權(quán)限。
3.1.3 other? 一個用戶,既不是文件的擁有者,也不是文件所屬組里的一員,那么對于這個文件而言,這個用戶就是該文件的other,對應(yīng)的權(quán)限一般比較少。
3.1.4 總結(jié)? 在這里是否會將文件訪問者和用戶搞混?其實很容易區(qū)分,用戶就相當(dāng)于我們生活中的一個一個人,而文件訪問者就相當(dāng)于一個個身份。一個人,在公司是員工,在家里是父親/母親,這兩個身份不沖突。同樣的,對于不同的文件而言,用戶也可以是不同的訪問者。
?如下,使用 ll 查看詳細(xì)信息時,中間兩個內(nèi)容,第一個是代表該文件的擁有者,第二個內(nèi)容是代表該文件的所屬組。那么other如何判斷呢?很簡單,當(dāng)一個用戶想要操作某個文件時,這個用戶既不是擁有者,也不是所屬組,自然就是other了。
? 如下,使用 ll 指令查看當(dāng)前目錄下的內(nèi)容的詳細(xì)信息時,每一行的第一個字符,代表的就是該文件的類型。
d:文件夾
-:普通文件l:軟鏈接(類似Windows的快捷方式)
b:塊設(shè)備文件(例如硬盤、光驅(qū)等)
p:管道文件
c:字符設(shè)備文件(例如屏幕等串口設(shè)備)
s:套接口文件
? 值得注意的是,Linux 環(huán)境下,文件類型和文件后綴無關(guān)。?首先看到 try.c 里面是一個 C 語言的代碼。然后用gcc 編譯 ,得到 a.out 這個可執(zhí)行文件。當(dāng)文件后綴名是 .out ,可以執(zhí)行。后綴換成 .txt ,依然可以執(zhí)行。后綴換成 .c 依然可以執(zhí)行,但是,執(zhí)行 try.c ,卻不可以。充分說明了,文件類型和文件后綴無關(guān)。
? 如下,既然文件訪問者分為三種類型,那么每一種類型都應(yīng)該有對應(yīng)的權(quán)限。在每一個文件的詳細(xì)信息中,除去開頭的一個字符,后面九個字符,頭三個是擁有者的權(quán)限,中間三個是所屬組的權(quán)限,最后三個是other的權(quán)限。(這些符號具體什么意思下文會介紹。)
? 文件的基本權(quán)限可以分為三個:讀、寫、執(zhí)行,可以表示為 rwx? 。
3.3文件權(quán)限值的表示方法 3.3.1字符表示法讀(r/4): Read對文件而言,具有讀取文件內(nèi)容的權(quán)限;對目錄來說,具有瀏覽該目錄信息的權(quán)限
寫(w/2): Write對文件而言,具有修改文件內(nèi)容的權(quán)限;對目錄來說具有刪除移動目錄內(nèi)文件的權(quán)限
執(zhí)行(x/1): execute對文件而言,具有執(zhí)行文件的權(quán)限;對目錄來說,具有進(jìn)入目錄的權(quán)限
“—”表示不具有該項權(quán)限?
? 字符表示法順序是固定的,第一個位置是讀,第二個位置是寫,第三個位置是執(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)制的。上文講到,三個字符為一組并且位置固定,那么從二進(jìn)制來看就把它這樣子看:對應(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)制來看,細(xì)分到每一個權(quán)限的。那么把三個權(quán)限看作整體,就是八進(jìn)制,比如 二進(jìn)制是000,對應(yīng)八進(jìn)制0,沒有任何權(quán)限; 二進(jìn)制 100,對應(yīng)八進(jìn)制4,只有讀權(quán)限; 二進(jìn)制 101 ,對應(yīng)八進(jìn)制5,有讀和執(zhí)行權(quán)限;二進(jìn)制 011,對應(yīng)八進(jìn)制3,有寫和執(zhí)行權(quán)限。
3.3.3總結(jié)?? 如下可以很好總結(jié)這里的內(nèi)容:
權(quán)限 | 二進(jìn)制 | 八進(jìn)制 | 描述 |
---|---|---|---|
--- | 000 | 0 | 沒有任何權(quán)限 |
--x | 001 | 1 | 只有執(zhí)行權(quán)限 |
-w- | 010 | 2 | 只有寫入權(quán)限 |
-wx | 011 | 3 | 只有寫入和執(zhí)行權(quán)限 |
r-- | 100 | 4 | 只有只讀權(quán)限 |
r-x | 101 | 5 | 可讀可執(zhí)行權(quán)限 |
rw- | 110 | 6 | 可讀可寫權(quán)限 |
rwx | 111 | 7 | 可讀可寫可執(zhí)行權(quán)限 |
chmod
?功能: 設(shè)置文件的訪問權(quán)限
格式: chmod [參數(shù)] 權(quán)限 文件名
常用選項:
R ->遞歸修改目錄文件的權(quán)限
說明:只有文件的擁有者和root才可以改變文件的權(quán)限
關(guān)于chmod命令的權(quán)限值的格式:?
① 用戶表示符+/-=權(quán)限字符
+:向權(quán)限范圍增加權(quán)限代號所表示的權(quán)限
-:向權(quán)限范圍取消權(quán)限代號所表示的權(quán)限
=:向權(quán)限范圍賦予權(quán)限代號所表示的權(quán)限
用戶符號:
u:擁有者
g:擁有者同組用
o:其它用戶
a:所有用戶
②三位8進(jìn)制數(shù)字
? 如下,三位八進(jìn)制數(shù)字,第一位是擁有者的權(quán)限,第二位是所屬組的權(quán)限,第三位是其他的權(quán)限,對著上面的權(quán)限和八進(jìn)制表很容易看懂。
? 該指令是更改文件擁有者。
?chown
功能:修改文件的擁有者
格式: chown [參數(shù)] 用戶名 文件名
? 如下,當(dāng)前用戶是root,所以可以隨意更改任意文件的擁有者。?
? 不難猜測,該指令是更改文件的所屬組。
chgrp
功能:修改文件或目錄的所屬組
格式: chgrp [參數(shù)] 用戶組名 文件名
常用選項: -R 遞歸修改文件或目錄的所屬組
??新建文件夾默認(rèn)權(quán)限=0666,新建目錄默認(rèn)權(quán)限=0777。但實際上你所創(chuàng)建的文件和目錄,看到的權(quán)限往往不是上面這個值。原因就是創(chuàng)建文件或目錄的時候還要受到umask(掩碼)的影響。假設(shè)默認(rèn)權(quán)限是mask,則實際創(chuàng)建的出來的文件權(quán)限是:? mask & (~umask)。掩碼也是八進(jìn)制的,表示的也是權(quán)限,直白地說就是,文件的實際權(quán)限,等于默認(rèn)權(quán)限 減去 掩碼的權(quán)限。
umask
?功能:
查看或修改文件掩碼修改掩碼
格式: umask 權(quán)限值
說明:將現(xiàn)有的存取權(quán)限減去權(quán)限掩碼后,即可產(chǎn)生建立文件時預(yù)設(shè)權(quán)限。超級用戶默認(rèn)掩碼值為0022,普通用戶默認(rèn)為0002
? 從下面也可以看出,普通用戶lijun 新建一個文件夾try,和文件try.c,可以看出其權(quán)限發(fā)呢別是775和664,和默認(rèn)權(quán)限777、666 相比,w權(quán)限都被去掉了。然后使用umask指令查看其掩碼,確實是0002.?
如何理解 mask & (~umask)?在這里給出個人的一些看法:
可執(zhí)行權(quán)限: 如果目錄沒有可執(zhí)行權(quán)限, 則無法cd到目錄中
可讀權(quán)限: 如果目錄沒有可讀權(quán)限, 則無法用ls等命令查看目錄中的文件內(nèi)容.
可寫權(quán)限: 如果目錄沒有可寫權(quán)限, 則無法在目錄中創(chuàng)建文件, 也無法在目錄中刪除文件
? 如下,首先查看當(dāng)前目錄下的詳細(xì)信息。
? 然后切換成 lijun 用戶,對目錄 leo 進(jìn)行操作,從詳細(xì)信息中可以看出,目錄leo 的 other沒有任何權(quán)限,且其擁有者和所屬組都是用戶 leo,那么用戶 lijun 對于目錄 leo 就是其他,所以第二個紅色個方框里面的任何操作都沒有權(quán)限。
? 但是,對于目錄 lijun,其擁有者的權(quán)限是rwx,并且其擁有者和所屬組都是用戶 lijun,當(dāng)用戶lijun對目錄 lijun進(jìn)行操作時,擁有任何權(quán)限,如第三個紅色方框里面的內(nèi)容。
? 從下面可以看出,一開始對于目錄 lijun,給other加上可讀權(quán)限,切換成用戶 leo,用戶leo對于目錄 lijun 是other,所以只能讀,不能cd 進(jìn)入目錄 lijun。后來給目錄 lijun 的other加上 可執(zhí)行權(quán)限之后,用戶 leo才可以cd 進(jìn)入目錄 lijun。
? 如下圖,現(xiàn)在有一個public 目錄,其擁有者和所屬組是root,other 有 rwx 的權(quán)限,假設(shè)這個目錄是給各個用戶來備份一些資料的。
? 切換成leo用戶,該用戶對于public來說是other,進(jìn)入public目錄之后,創(chuàng)建一個leo.txt 和 leodic,這是屬于leo 用戶的目錄和文件。并且向leo.txt 里面寫入一句話。
? 切換成lijun用戶,可見該用戶對于 leo.txt 是other,而leo.txt 的other 只具有讀的權(quán)限,所以可以讀,但是寫入內(nèi)容則沒有權(quán)限。但是,最重要的來了,我是 lijun 用戶,但是我卻可以刪除 leo.txt 這個屬于 leo的文件。這明顯不合理,為什么我會可以刪除 leo.txt 呢?這是因為,對于public目錄,我有寫的權(quán)限,所以我可以刪除public目錄里面的內(nèi)容。但是, leo.txt 是用戶leo的,可能記載著他的一些日志或者重要的內(nèi)容,我怎么可以直接就刪掉呢?這不合適,所以對于這樣的問題,Linux引入了粘滯位的概念。
? 粘滯位的作用是:
當(dāng)一個目錄被設(shè)置為"粘滯位"(用chmod +t),則該目錄下的文件只能由
一、超級管理員刪除
二、該目錄的所有者刪除
三、該文件的所有者刪除
? 如下,先給public 這個目錄添加粘滯位,然后切換為用戶lijun ,進(jìn)入 public,試圖刪除用戶leo的目錄和文件夾,發(fā)現(xiàn)不可以。這就是粘滯位。?
注意,粘滯位只在other 所具有的權(quán)限里面,擁有著和所屬組是不具備t 權(quán)限的。如下,即使給所有用戶加上 t 權(quán)限,也只有other 得到了改變。
? 1.如下,使用 ll 指令查看的時候,詳細(xì)信息解讀如圖。至于在權(quán)限后面的那個數(shù)字,對于目錄而言,是指它的第一級子目錄的個數(shù);對于其他文件而言,表示指向它的鏈接文件的個數(shù)。
2.雖然文件類型和文件后綴無關(guān),但是,這是對于Linux 系統(tǒng)而言。對于Linux 里面的工具,比如 gcc 等,文件后綴和它有關(guān)。如下,我把try.c 名字改成 try.txt ,但是里面的內(nèi)容不變,依然是一個C 語言的代碼。但是,此時用gcc 編譯,卻發(fā)現(xiàn)不可以。
? 3. 權(quán)限=人+文件屬性。 文件屬性=文件類型+文件權(quán)限。
關(guān)于 Linux 的權(quán)限,暫時就寫到這里,如有錯誤,歡迎指正?。?/p>
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:【Linux】詳解Linux權(quán)限管理-創(chuàng)新互聯(lián)
分享URL:http://www.rwnh.cn/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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容