這裏寫目錄標題
- <font color="ff00ff">1. shell命令以及運行原理
- <font color="ff00ff">1.1 那為什麼我們不直接使用內核呢?
- <font color="ff00ff">2. Linux權限的概念
- <font color="ff00ff">2.1 su 用户名
- <font color="ff00ff">3. Linux權限管理
- <font color="FF00FF"><font size="4">3.1 文件訪問者的分類(人)
- <font color="FF00FF"><font size="4">3. 2 文件類型和訪問權限(事物屬性)
- <font color="FF00FFF"><font size="4">3.21 文件類型:
- <font color="FF00FF"><font size="4">3. 22 訪問權限:
- <font color="FF00FF"><font size="4">3.3 總結
- <font color="ff00ff">4. chmod
- <font color="ff00ff">5. chown
- <font color="ff00ff">6. chgrp
- <font color="ff00ff">7. file
- <font color="ff00ff">8. umask
- <font color="ff00ff">9. 目錄的權限
- <font color="ff00">9.1 重點
- <font color="ff00ff">10 那有沒有辦法不讓zs刪除xaq的文件呢?
1. shell命令以及運行原理
Linux是一個操作系統,我們把它叫做核心,但我們不可以直接使用核心,我們是經過核心的外殼程序,也就是shell來與內核溝通。
1.1 那為什麼我們不直接使用內核呢?
從技術角度,Shell的最簡單定義:命令行解釋器
主要包含:
1. 將使用者的命令翻譯給核心進行處理。
2. 同時,將核心的處理結果翻譯給使用者。
雙擊C盤盤符就是對比windows GUI,我們操作windows不是直接操作windows內核,而是通過圖形接口,點擊,從而完成我們的執行(比如進入C盤的運行,我們通常
shell對於Linux,有相同的作用,首要是對我們的指令進行解析,解析指令給Linux內核。反饋結果在通過內核運行出結果,經過shell解析給用户,bash就是我們常用的外殼代碼
2. Linux權限的概念
Linux下有兩種用户:超級用户(root) 和 普通用户
超級用户:可以再linux系統下做任何事情,不受限制
普通用户:在linux下做有限的事情。
“$”就是超級用户的命令提示符是“#”,普通用户的命令提示符
2.1 su 用户名
能力:切換用户。
例如,要從root用户切換到普通用户 xaq,則使用su xaq,普通用户不需要切換代碼
要從普通用户 xaq 切換到root 用户則採用su root(root允許省略),此時系統會提示輸入root用户密碼的口令。
3. Linux權限管理
3.1 記錄訪問者的分類(人)
縮寫)就是1. 文件或文件目錄的所有者:u----User (u
在所有者的所在的組的用户 (所屬組):g—Group
其它用户:o—Others(其它人)
3. 2 文件類型和訪問權限(事物屬性)
3.21 文件類型:
d:文件夾
-:普通材料
3. 22 訪問權限:
讀( r ):Read對檔案而言,具有讀取文件內容的權限
對目錄來説,具有瀏覽該目錄信息的權限
寫(w):Write對文件而言,具有修改文件內容的權限
對目錄來説具有刪除移動目錄內文件的權限
執行 (x):execute對文件而言,具有執行文件的權限
對目錄來説,具有進入目錄的權限
— 表示不具有該項權限
這個test對於就是這裏的d和 - 是文件類型,而d和 - 之後的就是就是訪問權限,就
所有者,所屬組,和其它人分別是
所有者:它是可讀可寫可執行
所屬組:它是可讀可寫可執行
其他人:它是可讀不能寫可執行
這裏的訪問權限是出去首字母的文件類型,然後3個放一起看,而且必須是r w x的順序,不能 r x w什麼之類的,就像其他人他沒有寫權限 - 就代表他不具有該項權限
這裏的2 後面的第一個xaq就是目錄所有者,而所屬組也是xaq,這是我名字縮寫,你們也能夠設置自己的,這就是文件訪問者,但還存在真實的人,真實的人就是root(超級用户)或普通用户
比如這裏的test目錄的所有者和所屬組都是普通用户(xaq),而xaq相當於是個角色,它扮演成了這個目錄的所有者和所屬組,使它們都變成xaq
3.3 總結
權限:權限就是角色+事物屬性,正常是文件訪問者+事物屬性,但是文件訪問者只能是超級用户或普通用户,而我們把超級用户或普通用户統稱為角色,所以權限就是角色+事物屬性(文件類型和訪問權限統稱為事物屬性)
4. chmod
功能:設置文件的訪問權限
+ : 就是增加訪問權限
- : 就是減少訪問權限
= : 就是賦值訪問權限
a :所有用户,全稱是all
此時就給test.c加了可寫權限,就是能夠修改文件內容了。1. 只有記錄的擁有者和root 才可以改變文件的權限
張三不可以改文件的權限
我是張三我不可以去改xaq這個目錄的權限,只能回到xaq或root改,root無視權限
前面説的x權限是文件可執行,但是在Linux下能執行包括兩個條件,一是具有x權限,二是文件真的可以執行
依然不可以執行因為它沒有進行gcc編譯,故而一個文件要執行就必須進行gcc編譯和有x權限就是這裏的test.c具有x權限但
這裏文件的所有者和所屬組都是xaq,但是user,group,other和我當前用户進行身份對比時,只依次對比一次,我當前用户是xaq,跟我的user先對比,對比成功就不會繼續對比了,如果不成功再與group對比
5. chown
效果:更改文件或目錄的擁有者
這裏我想把test.c文件的擁有者改成zs,只能是root用户,要是普通用户的話要求sudo提權
6. chgrp
作用:更改文件或目錄的所屬組
這裏我想把test.c文件的所屬組改成zs,只能是root用户,要是普通用户的話需要sudo提權
通過這樣也可以改權限,但是這能夠一下改變多個,只是之前的
這裏第二個指令g+x就不會被執行
總結:八進制改變權限可以一次性改變 u,g,o的所有權限,而+就只能改變一個。
7. file
功能:識別資料的類型。
8. umask
功能:
查看或修改文件掩碼
超級用户默認掩碼值為0022
普通用户默認為0002
新建文件夾默認權限=666
新建目錄錄默認權限=777
: mask&(~umask)就是但實際上創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建文件或目錄的時候要受到umask的影響。假設默認權限是mask,則實際創建的出來的文件權限
所以最終權限 (缺省權限)
新建文件夾默認權限=664
新建目錄錄默認權限=775
通過也就是我們只要修改材料或目錄的掩碼就能夠改變文件或目錄最終權限也叫缺省權限
9. 目錄的權限
可執行權限: 如果目錄沒有可執行權限,則無法cd到目錄中.
可讀權限: 要是目錄沒有可讀權限,則無法用ls等命令查看目錄中的文件內容.
可寫權限: 如果目錄沒有可寫權限,則無法在目錄中創建材料,也無法在目錄中刪除資料.
換句話來講,就是隻要用户具有目錄的寫權限,用户就可以刪除目錄中的文件,而不論該用户是否有這個檔案的寫權限
這好像不太科學,xaq創建的⼀個文件,憑什麼被你zs可以刪掉?
沒有w的權限的,只有r就是最初在該目錄下test.c記錄,對於其他人來説
用户就是我們回到上級目錄,裏面有xaq這個目錄,也
我們給xaq這個目錄的other加上rwx權限
不加x,zs進不去xaq這個目錄
不加r,zs看不了xaq目錄裏的文件信息
9.1 重要
結論:切換到zs這個用户,然後進入xaq這個目錄,可以看到裏面的資料並沒有w權限,但是我們可以刪除它,也就是刪除該目錄下的文件與你本身文件的權限無關,與你文件所在目錄的權限有關
其實前面也知道文件的w權限是能否修改文件的內容,與能否刪除該記錄無關,但是上面的結論把記錄換成目錄也是一樣的,也就是説切換到zs這個用户,之後進入xaq這個目錄,可以看到裏面的目錄並沒有w權限,但是我們可以刪除它,也就是刪除該目錄下的目錄與你本身目錄的權限也無關,與你目錄所在目錄的權限有關
10 那有沒有辦法不讓zs刪除xaq的文件呢?
因此引出粘滯位的概念
1. 粘滯位只能給目錄設置,不能給普通文件設置
2. 任何用户在當前目錄下設置粘滯位後,只允許當前目錄的擁有者刪除當前目錄下的文件或目錄,所屬組和other,都無法刪除
3. root可以無視粘滯位,因為他是超級用户,允許理解成他開掛了
倘若這個目錄沒有x權限就會變成T,粘滯位是給other的,如果有x權限,粘滯位就是t
此時就刪除不了了。