引言
在Linux的廣闊天空中,權限管理猶如一只翱翔的雄鷹,掌控著系統(tǒng)的安全與秩序。掌握Linux權限,不僅能讓你的系統(tǒng)管理更加得心應手,還能有效防止未授權訪問和數據泄露。本文將帶你深入探索Linux權限的奧秘,助你成為權限管理的高手。
一、Linux權限管理基礎
1.1 權限的概念以及重要性
Linux系統(tǒng)是一個多用戶操作系統(tǒng),為了保護系統(tǒng)資源不被未授權的用戶訪問或破壞,引入了權限管理機制。權限管理確保系統(tǒng)資源的安全性和穩(wěn)定性,防止未經授權的訪問和修改。換言之,一件事是否允許被你做,這就叫權限。
1.2 不同用戶類別的權限
1.2.1 用戶的分類
在Linux中用戶分為兩類:
?超級用戶(root):可以在Linux系統(tǒng)下做任何事情,不受限制。命令提示符為“#”。
?普通用戶:在Linux系統(tǒng)下做有限的事情。命令提示符為“$”。
1.2.2 用戶的切換
由于普通用戶在進行操作時可能會受到權限的限制,所以這時候進行用戶的切換說不定就可以操作成功。那普通用戶和超級用戶之間是如何切換的呢?
普通用戶切超級用戶
語法:su / su -
說明:讓普通用戶切換到超級用戶,切換時會提示普通用戶輸入 root 的密碼(tips : 密碼輸入時沒有回顯)。
超級用戶切普通用戶
語法:su [用戶名]
說明:讓 超級用戶/普通用戶 切換到普通用戶,由于超級用戶權限很高,所以不需要輸入密碼就可以切換,而普通用戶切換就需要輸入對方的密碼。
這里需要注意的是,我們使用su來切換用戶,只是進行了身份切換,路徑并沒有變,如果想改變路徑,我們可以使用su -(本質上是重新登陸了)。
切換用戶就好比給自己套了一層衣服,一層一層疊buff。那如何脫掉衣服呢?我們可以使用exit或者Ctrl+D來退出。
1.2.3 sudo 指令
語法:sudo 指令X
功能:讓普通用戶通過sudo對指令X進行提權,以超級用戶的身份去執(zhí)行該命令。
那這個指令有點逆天,難道說我們普通人也能翻身有超能力了?并沒有那么簡單,我們在剛開始adduser的時候,并沒有在白名單里,系統(tǒng)默認不相信我們。只有root把我們加到白名單里,我們才能用sudo進行提權。
如下圖,hjz用戶未被加入到sudoers file。
1.3 權限的表示方法
在linux中我們如何表示權限呢?其實很簡單,只需要記住角色+屬性即可。
我們可以通過 ls - l 指令來查看當前目錄下的所有文件。
1.3.1 Linux中的角色
在Linux中共分三個角色:
? 擁有者(u -- User):文件和文件目錄所有者。
? 所屬組(g -- Group):文件和文件目錄所有者所在的組的用戶。
? 其他人(o -- Others):其他用戶。
其中黃色框起來的是擁有者,紫色框起來的是所屬組,其他人并未出現在屬性中。當用戶操作文件時,它會先看用戶是不是擁有者,如果不是再看是不是所屬組,如果都不是那就是其他人。
還有一個比較重要的一點,一次只能匹配一個角色。例如:
此時我們擁有者是沒有寫權限的,但是所屬組有,那我們可不可以寫文件呢?答案是不能,因為一次智能匹配一個角色,我們root匹配上了擁有者。(這里由于我拿root來演示,所以還會寫進去,普通用戶是做不到的)
1.3.2 文件類型
如圖所示,藍色框起來的部分就是代表著文件的類型,其中文件類型分為以下幾種:
?-:普通文件
?d:文件夾
?l:軟鏈接(類似Windows的快捷方式)
?b:塊設備文件(例如硬盤、光驅等)
?p:管道文件
?c:字符設備文件(例如屏幕等串口設備)
?s:套接口文件
1.3.3 基本權限
主播主播,有沒有能代表文件的基本權限的字符推薦一下?有的兄弟有的,像這樣的字符一共有九位。如圖所示,紅色框起來的九個字符代表著文件的基本權限。
前三位代表著擁有者的權限、中間三位代表所屬組的權限,后三位代表其他人的權限。
每三位都分別由r、w、x來控制,如果有該權限就標記為該字母,否則標記為-。
?r(讀/4):Read,對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限。
?w(寫/2):Write,對文件而言,具有修改文件內容的權限;對目錄來說,具有刪除或移動目錄內文件的權限。
?x(執(zhí)行/1):Execute,對文件而言,具有執(zhí)行文件的權限;對目錄來說,具有進入目錄的權限。
?-:表示不具有該項權限。
二、權限的修改
首先聲明一點,只有文件擁有者和超級用戶才可以修改文件權限。
2.1 chmod 指令
語法:chmod [參數] 權限 文件名
功能:設置文件的訪問權限。
常用選項:
-r:遞歸修改目錄文件的權限。
其中u代表擁有者、g代表所屬組、o代表其他人,通過+、-來增減。一次性可以修改多個權限。
這里要介紹另一個表示權限的方法——八進制數值表示法。
2.1.1 八進制數值表示法
? 每個權限位(讀、寫、執(zhí)行)可以用一個八進制數字來表示:
? 讀(r):4
? 寫(w):2
? 執(zhí)行(x):1
? 空(-):0
? 例如,權限rwxr-xr--可以表示為八進制數值754(rwx:4+2+1=7、r-x:4+0+1=5、r--:4+0+0=4)。
所以我們命令操作也可以這么寫:chmod [想改成的八進制數值] 文件
2.2 chown 指令
語法:chown [參數] 用戶名 文件名
功能:修改文件的擁有者。
實例:
chown hjz hello.txt:將文件hello.txt的擁有者改為hjz。
2.2 chgrp 指令
語法:chgrp [參數] 用戶組名 文件名
功能:修改文件或目錄的所屬組。
實例:
chgrp hjz hello.txt:將文件hello.txt的所屬組改為hjz。
2.3 umask 指令
我們在創(chuàng)建一個新的文件或目錄的時候有沒有初始默認權限呢?先給出答案,是有的,并且:
? 默認給普通文件的起始權限是666。
? 默認給目錄的起始權限是777。
我們創(chuàng)建了一個文件和目錄,但發(fā)現并不是666和777,而是644和755,這是為什么呢?這就要提出一個叫權限掩碼的東西了。
2.3.1 權限掩碼
首先如何查看權限掩碼?通過umask指令。
語法:umask 權限值
功能:查看或修改權限掩碼。如果沒輸入權限值就是查看當前掩碼。
從圖中我們可以看到我的權限掩碼是022(第一個0代表是八進制)??蛇@又和那個有什么關系呢,也不一樣啊。別著急,我們慢慢分析。
2.3.2 如何獲得最終權限
首先我們輸入umask獲得權限掩碼,然后再通過公式最終權限 = 初始權限 & (~權限掩碼)。
拿我的舉例
三、目錄的權限以及粘滯位
3.1 目錄的權限
?可執(zhí)行權限(x):如果目錄沒有可執(zhí)行權限,則無法cd到目錄中。
?可讀權限(r):如果目錄沒有可讀權限,則無法用ls等命令查看目錄中的文件內容。
?可寫權限(w):如果目錄沒有可寫權限,則無法在目錄中創(chuàng)建文件,也無法在目錄中刪除文件。
有了上面的說明,我們首先要知道,文件的刪除并不是由文件本身決定,而是它所在的目錄決定。
當我們在創(chuàng)建一個新用戶時,系統(tǒng)會在/home自動創(chuàng)建一個用戶的家目錄。
我們可以觀察到這個目錄對others的權限是0,這說明其他人不可以進入我的家目錄,更不可能增刪查改文件。
我們有時需要進行多個用戶之間的文件數據共享,這個時候就需要超級用戶在根目錄下創(chuàng)建一個共享的文件,并且把其他人的權限改為7,保證普通用戶可以進入目錄,并且可以查看和創(chuàng)建文件。
但是問題來了,如果有內鬼怎么辦,別忘了能創(chuàng)建就可以刪除啊。就比如wow辛辛苦苦寫的文件,cyy不想干了,把文件刪了。這種情況該怎么辦呢,刪除和創(chuàng)建查看綁在一起了,這個時候粘滯位就派上作用了。
3.2 粘滯位
如何使用粘滯位呢?很簡單,只需要chmod +t 即可。
語法:chmod +t
功能:使該目錄下的文件只能由超級管理員、該目錄的所有者或該文件的所有者刪除。
實例:
我們根目錄下系統(tǒng)自帶了一個tmp目錄供我們實現多用戶文件數據共享操作。
-
Linux
+關注
關注
87文章
11432瀏覽量
212458 -
命令
+關注
關注
5文章
724瀏覽量
22639 -
權限管理
+關注
關注
0文章
15瀏覽量
9098
原文標題:【Linux】掌權如鷹:Linux權限天空的翱翔秘籍
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
【Linux學習雜談】之文件權限管理
linux的權限和指令
Linux 中文件權限管理的探討
淺談Linux權限管理的ACL權限
Linux里面如何理解和管理他們的讀、寫、執(zhí)行權限?
Linux進程權限的分析說明
Linux基礎的用戶權限
linux文件訪問權限怎么設置
Linux把目錄權限給指定用戶
搞懂Linux權限管理,提升系統(tǒng)安全性與穩(wěn)定性

評論