
權限
- 1.Linux權限的概念
- 2.Linux權限管理
- 1. 檔案訪問者的分類
- 2.檔案的型別和訪問的權限:
- 設定權限
- 3.檔案的默認權限
- 默認權限的計算
- chown
- chgrp
- 4.Linux 授予普通用戶root權限方法
- 5.粘滯位
- 完!
1.Linux權限的概念
超級用戶:可以再linux系統下做任何事情,不受限制
普通用戶:在linux下做有限的事情,受到某些權限的限制,
超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”,

命令 :su 【用戶名】
作用:切換用戶
su - 從普通用戶切換到超級用戶,
指令:
exit,logout:退出當前用戶,
2.Linux權限管理
1. 檔案訪問者的分類
檔案的權限主要是用來限制普通的用戶,超級用戶root基本不受限制,
檔案中有兩種權限:
1.相對檔案來說,可以分為3種用戶:
- 檔案擁有者 ( owner 縮寫u)
- 檔案的所在組(group 屬組,縮寫g)
- 其他人(既不是檔案的所有者也不是檔案的所在組) (other 其他,縮寫o)
檔案可以分別對這3種用戶設定權限,
注意:目錄也屬于檔案中的一種,
為什么要有所屬組的存在?
例如:此時你們都組A和組B在同一家公司,用的是同一臺服務器,假如你有一個檔案file.c,此時檔案的擁有者就是你,王五和李四就和屬于檔案的所在組,而張三就是其他人other,所以這時候你可以設定這個檔案的權限,讓組內的人可以讀取這個檔案的內容,讓其他人不能讀取這個檔案的內容,此時張三就不能讀取這個檔案的內容,
如果你有一個檔案,你只為了某些人只能看這個檔案的內容,而不想讓其它人看這個檔案的內容,你可以把能看這個檔案的內容拉進你的所屬組,然后設定權限,讓所屬組可以看檔案的內容,讓其它人不能看這個檔案,所以所屬組的存在是為了更靈活的進行權限的配置,滿足團隊的協作,

2.檔案的型別和訪問的權限:
由指令ll可以查看檔案的屬性,那么這些檔案屬性代表的是什么,

上面的紅方框代表的是檔案所有者,綠方框代表的是檔案所在組

我們看紅色方框中符號,我們可以看到每個檔案中都有10個符號,那么這10個符號代表的是什么意思,
我們以dir3檔案為例子:

第1位代表的檔案的型別有:
- d:目錄
- -:普通檔案
- l:軟鏈接(類似Windows的快捷方式)
- b:塊設備檔案(例如硬碟、光驅等)
- p:管道檔案
- c:字符設備檔案(例如螢屏等串口設備)
- s:套介面檔案
檔案字符代表權限的含義:
- r:代表讀,對于檔案來說,具有查看檔案內容的權限,對于目錄來說,具有查看該目錄下的檔案權限,
- w:代表寫,對于檔案來說,具有在檔案中寫內容的權限,對于目錄來說,具有在目錄底下創建檔案或目錄的權限,
- x:代表可執行,對于檔案來說,具有執行檔案的權限,對于目錄來說,具有進入目錄的權限,
后9個符號代表的權限,2-4位字符是檔案所有者的權限,5-7位字符是檔案所在組的權限,8-10位字符是其他人的權限,
這三種用戶里的權限都有3個字符:
3個字符種的第一個字符的位置代表該用戶是否有讀的權限:如果有則為 r,沒有為 -;
第二個字符的位置代表該用戶是否有寫的權限:如果有為w,沒有為 -;
第三個字符的位置代表該用戶是否有可執行的權限:如果有為x,沒有為 -;

我們知道這些以后,那么dir3檔案是什么型別的檔案和它對三種用戶都有什么權限?

答:dir3是目錄,對于檔案擁有者和檔案的所屬組都是可讀可寫可執行,對于其他人是可讀可執行 當不能寫,檔案的擁有者和所屬組都為sjp,
看完權限后,我們在來看下面的屬性:

上面綠色框代表的是:該檔案被硬鏈接的次數,

上面綠色框代表的是:檔案內容最近一次被修改的時間

上面紅色框代表的是:檔案名,
設定權限
語法:
- chmod 用戶+權限 檔案名 給檔案指定的用戶加上指定的權限
- chmod 用戶-權限 檔案名 刪去檔案指定的用戶加上指定的權限
- 用戶:u(檔案擁有者),g(檔案所屬組), o(其它人 )
例子:
- chmod u-r test.1 : 刪去test.1擁有者的讀權限
- chmod g+ rwx test.1: 給test.1的所屬組加上讀,寫,可執行的權限
- chmod -rwx test.1: 刪去擁有者,所屬組,其它人的讀,寫,可執行的權限
- chmod +rw test.c1: 給test.1的擁有者,所屬組,其它人 加上讀,寫權限
用數字來進行權限:
我們用戶權限三個字符提取出來看,用二進制的0或1來來代表這三個字符權限的有無,如果該用戶有該權限就表示為1,沒有就表示為0,例如:

然后由二進位轉換為八進制位:

rwx的八進制位就是7,- w -的八進制位就是 2,也就是說 你想要給test.1檔案所有用戶設定讀寫可執行權限,直接 chmod 777 test.1 即可,

例子
- chmod 666 test.1: 給test.1檔案中的所有用戶設定讀寫的權限,
- chmod 000 test.1: 刪去擁有者,所屬組,其它人的讀,寫,可執行的權限
- chmod 600 test.1: 僅給擁有者設定可讀可寫的權限
以上是兩種給檔案設定權限的方法,不管用哪種方法都是一樣的,
3.檔案的默認權限
對于我們剛創建的檔案,檔案中對三種用戶都有固定的權限,這個固定的權限位默認的權限
umask: 查看umask值
比如: 0002
第一位0是檔案的特殊權限
后三位002是umask值
默認權限的計算
- 系統默認不能建立可執行權限的檔案,需要手工賦予
- 所以檔案默認的最大的權限為 666 (目錄的默認權限為 777)
- 默認權限=默認最大權限-umask值(默認的權限需要換算成字母進行相減)
- 666換算成字母為 rw- rw- rw- ,002換算成字母為 — --- -w- ,相減為 rw- rw- r–,所以默認權限為rw- rw- —
- 777 換算成換算成字母為 rwx rwx rwx ,002換算成字母為 — --- -w- ,相減為 rwx rwx r-x ,所以目錄的默認的權限的為rwx rwx r-x
如果我們想修改檔案或目錄的默認權限,我們可以怎么做?
umask 0001 :將umask的值修改為0001,這樣我們就可以間接的修改默認在的權限,
0001 轉換為字母為 — --- --x 通過計算,檔案默認的權限為 rw- rw- rw-,目錄的默認的權限為 rwx rwx rw-.
chown
功能:修改檔案的擁有者
格式:chown 用戶名 檔案名
當然,我們修改檔案的擁有者還需要經過對方的同意,才能成功修改檔案的擁有者
或者超級用戶可以直接修改檔案的擁有者,或者普通用戶短暫提升超級用戶的權限也可以直接修改檔案的擁有者,不需要對方的同意,
例如:
將dir2目錄的擁有者由root改為sjp,
sudo +指令:短暫使用root權限, 使用sudo指令需要進行設定,下面會講

chgrp
功能:修改檔案的所屬組
格式:chgrp 【選項】 用戶組名 檔案
常用選項:-R 遞回修改檔案的所屬組
當然,我們修改檔案的所屬組還需要經過對方的同意,才能成功修改檔案的所屬組
或者超級用戶可以直接修改檔案的所屬組,或者普通用戶短暫提升超級用戶的權限也可以直接修改檔案的所屬組,不需要對方的同意,
例如:
將test.c檔案的所屬組由root改為sjp,

4.Linux 授予普通用戶root權限方法
直接進入**/etc/sudoers** 檔案,然后找到99行,只有root或者授予普通用戶root權限才能進入這個檔案,
怎樣顯示行號?我們進去按shift+;進入底行模式,然后在底行輸入 set nu 即可

然后把你想要擁有root權限的用戶在添加一行即可,例如我的普通用戶是sjp,那么我們直接在root下面添加一行即可,
按Esc退出底行模式,在按i進入文本編輯模式,即可修改文本,

最后在按Esc退出文本編輯模式,按shift+;進入底行模式,然后輸入wq!,保存文本并退出就行,這時候該普通用戶才能用sudo指令,
5.粘滯位
可執行權限:如果目錄沒有可執行權限,則無法進入目錄,
可讀權限: 如果目錄沒有可讀權限, 則無法用ls等命令查看目錄中的檔案內容.
可寫權限: 如果目錄沒有可寫權限, 則無法在目錄中創建檔案, 也無法在目錄中洗掉檔案.
假設有兩個小組,組A和組B,他們需要共同完成一個專案,所以專案管理者就創建一個目錄,讓兩個組的成員的能夠在這個目錄下創建檔案并寫代碼,專案管理者給這個目錄設定其他人可讀可寫可執行的權限,此時張三和李四是分別是組A和組B的成員,他們兩個都在這個目錄下創建了各屬于自己的檔案并寫代碼,有一天,李四看到暗戀已久的如花跟張三一起出去吃飯,并且有說有笑,李四心里很不好受,李四很一直很嫉妒張三,因為張三又高又帥,而且能力又強,領導更是對張三贊不絕口,此時看到女神跟張三一起出去吃飯,李四忍無可忍,便把該目錄張三的所有檔案給洗掉掉了,因為該目錄設定其他人的權限是可寫的,所以李四可以在該目錄下洗掉張三的檔案,張三寫了30多天的代碼就這樣被李四給毀掉了,此時我們應該避免張三的檔案被李四給毀掉呢,如果說我們只要對給其他人的可寫的權限給去掉就可以,那么小組就不能在該目錄下創建檔案了,粘滯位就可以很好解決同一個目錄下檔案被別人刪的情況
設定粘滯位之后,允許用戶在目錄中任意的寫入、洗掉檔案,但是禁止洗掉其他人的檔案,
- chmod +t test 給test設定粘滯位,使用ls命令查看其屬性時,其他用戶權限處的“x”將變為“t”
- 注意粘滯位只能修飾目錄 ,檔案不能設定粘滯位
- 目錄設定粘滯位后,可以洗掉目錄下的檔案的用戶:
- a.超級用戶root
- b. 檔案的所有者
- c. 目錄的所有者
設定粘滯位后的目錄,則李四就不能洗掉張三的檔案,這樣就阻止了李四犯傻事,

點個贊唄~ 謝謝大佬們!!!
完!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/292949.html
標籤:其他
上一篇:Day3:資料結構之帶頭雙鏈表
