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

【Linux學(xué)習(xí)雜談】之文件權(quán)限管理
linux的權(quán)限和指令
Linux 中文件權(quán)限管理的探討
Windows下linux權(quán)限管理問題解析

淺談Linux權(quán)限管理的ACL權(quán)限
Linux里面如何理解和管理他們的讀、寫、執(zhí)行權(quán)限?
Linux進(jìn)程權(quán)限的分析說明
Linux基礎(chǔ)的用戶權(quán)限
linux文件訪問權(quán)限怎么設(shè)置
Linux把目錄權(quán)限給指定用戶
搞懂Linux權(quán)限管理,提升系統(tǒng)安全性與穩(wěn)定性

評論