linux - 權限的概念

目錄

用戶權限

超級用戶與普通用戶的區別

超級用戶(root):

普通用戶:

切換用戶身份

使用sudo執行高權限命令

用戶管理

用戶組管理

文件權限

文件訪問者類別

基本權限

權限表示方法

權限修改

chmod

chown

chgrp

umask

粘滯位

一些提示


本博客我們要了解用戶權限和文件的權限

用戶權限

Linux下有兩種??:超級??(root)、普通??。普通??:在linux下做有限的事情。超級??:可以再linux系統下做任何事情,不受限制超級??的命令提?符是“#”,普通??的命令提?符是“$”。

超級用戶與普通用戶的區別

在Linux系統中,用戶主要分為兩類:超級用戶(root)和普通用戶。它們在系統權限和操作范圍上有顯著差異。

超級用戶(root)

  • 擁有系統的最高權限,可以執行任何操作,包括修改系統文件、安裝軟件、管理用戶等。
  • 命令提示符通常以“#”結尾,表示當前用戶為超級用戶。
  • 由于權限過高,建議僅在必要時使用root賬戶,以避免誤操作導致系統損壞。因此平時我們就用普通用戶來對linux進行操作,避免出現 rm -rf /這種巨大錯誤

普通用戶

  • 權限受限,只能執行與自身相關的操作,如管理個人文件、運行普通程序等。
  • 無法直接修改系統文件或執行需要高權限的操作。
  • 命令提示符通常以“$”結尾,表示當前用戶為普通用戶。

切換用戶身份

在Linux系統中,可以通過以下命令在超級用戶和普通用戶之間切換:

從普通用戶切換到超級用戶

su -

輸入該命令后,系統會提示輸入root用戶的密碼,驗證成功后即可切換到root用戶。

從超級用戶切換回普通用戶

exit

輸入該命令后,系統會退出root用戶,返回到之前的普通用戶身份。

使用sudo執行高權限命令

為了避免頻繁切換用戶,普通用戶可以使用sudo命令臨時獲取超級用戶權限來執行特定命令。例如:

sudo apt-get update

該命令會提示輸入當前用戶的密碼,驗證成功后以root權限執行apt-get update

用戶管理

創建新用戶

sudo adduser username

該命令會創建一個新用戶,并提示設置密碼和其他信息。

創建好后我們就可以用普通用戶來操作linux了

刪除用戶

sudo deluser username

該命令會刪除指定用戶及其主目錄。

修改用戶密碼

sudo passwd username

該命令允許超級用戶為指定用戶修改密碼。

用戶組管理

我們只設置超級用戶root和普通用戶兩個權限是否夠用呢?答案是夠用的,但是用著不舒服,如果我們要給一些用戶一些權限,那么就要給這些用戶一個一個分配,到時候又要一個一個取消。十分麻煩,因此就有了用戶組來統一管理權限

一個用戶有一個主組和多個附屬組,一個用戶加入到另一個組里后,這個組就是這個用戶的附屬組

一個用戶被創建的時候,會默認給這個用戶生成一個主組,主組的名字就是用戶名。

為了方便理解,我用團體來類比,每個人都是一個團體,這個團體就叫主體(主組)。然后可以歸屬其他團體,歸屬后就會以團體身份操作對方資源。

通過文件屬性查看,第一個dgj是這個文件所屬者,即誰創建它的;第二個dgj是這個文件的創建者的所屬組,因為dgj的主組是dgj,所以所屬組默認就是dgj了。

通過給出所屬組,相當于創建者背后的團體成員,就可以進行權限的區別對待了。

主組是可以修改的,但是不建議這樣。感興趣這可以查閱資料

將用戶添加到用戶組

sudo usermod -aG groupname username

該命令將指定用戶添加到指定用戶組中。

例如 sudo usermod -aG? A B

那么B用戶就進入A用戶的主組了,

創建新用戶組

sudo addgroup groupname

該命令會創建一個新的用戶組。這個組不是任何用戶的主組,因此要通過修改主組的命令給它分配用戶

刪除用戶組

sudo delgroup groupname

該命令會刪除指定的用戶組。

通過以上方法,可以有效地管理Linux系統中的用戶和權限,確保系統的安全性和穩定性。

至于在哪體現用戶組和普通用戶權限區別,具體在文件權限來看

文件權限

首先我們了解一下文件的類型

我們看每個文件屬性最前面的一個字母就是描述的文件類型

d:文件夾? ? ?-:普通文件? ?

l:?軟鏈接? ? ? b:快設備文件(如硬盤)

p:管道文件 c:字符設備文件

s:套接口文件

可以使用file命令 來顯示當前文件是什么類型

文件訪問者類別

  1. 文件和文件目錄所有者
  2. 文件和文件目錄所有者所在的組的用戶
  3. 其他用戶

基本權限

  1. 讀:Read對?件??,具有讀取?件內容的權限;對?錄來說,具有瀏覽該?錄信息

    的權限,即能不能用 ls 查看

  2. 寫:Write對?件??,具有修改?件內容的權限;對?錄來說具有刪除或創建?錄內

    ?件的權限,即能不能用rm或者rmdir 和 touch或者mkdir

  3. 執行:execute對?件??,具有執??件的權限;對?錄來說,具有進??錄的權

    限,即能不能用 cd 命令進入

  4. -:表示沒有這個權限,下圖可以看出

上圖的九項就是權限的描述,分別是讀寫執行重復三次,為什么要出復三次呢?

這是描述所有者,所屬組,其他用戶的權限說明,每個類型都有三個權限來描述分別是讀寫執行。

通過這九項三大類,就可以把文件權限管理的十分恰當,但也有不足,后面說

權限表示方法

_ _ _? ?_ _ _? ?_ _ _三類分別看,每個_有兩個情況,因此有2^3=8種,所以我們可以用三位八進制來簡潔表示我們的權限。

例如 rw__wx___ 就是110 011 000就是630

一個文件創建后的默認權限是666,一個目錄創建的默認權限是777

權限修改

一個文件的修改權一般只能是文件所有者或者root

chmod

功能:設置?件的訪問權限

格式:chmod [參數] 權限 ?件名 常?選項:

? R -> 遞歸修改?錄?件的權限

? 說明:只有?件的擁有者和root才可以改變?件的權限

chmod命令權限值的格式:

1 ??表?符+/-=權限字符

? +:向權限范圍增加權限代號所表?的權限

? -:向權限范圍取消權限代號所表?的權限

? =:向權限范圍賦予權限代號所表?的權限

? ??符號:

? u:擁有者

? g:擁有者同組?

? o:其它??

? a:所有??

? 實例:

? chmod u+w /home/abc.txt

? chmod o-x /home/abc.txt

? chmod a=x /home/abc.txt

2 三位8進制數字

? 實例:

? chmod 664 /home/abc.txt

? chmod 640 /home/abc.txt

chown

修改一個文件的所有者

格式:chown [參數] ??名 ?件名

-R 遞歸修改?件或?錄的所屬者


chgrp

修改一個文件的所屬組

-R 遞歸修改?件或?錄的所屬組

chgrp users 文件名

umask

首先要了解 權限掩碼是什么,我們創建一個文件和目錄:

我們發現文件權限不是66,目錄權限也不是777

這是因為有權限掩碼,權限掩碼就是讓某些權限在創建的時候不給出

第一位是特殊權限位不用管。因此權限掩碼就是000 000 010,即其他組沒有寫權限。也就和ll的對應上了

粘滯位

有一個潛在的問題,只要一個用戶擁有目錄寫的權限就可以刪除這個目錄下的文件,這是不可取的。我創建的文件憑什么被你給刪除掉了呢??

因此有了粘滯位

chmod +t 目錄

當?個?錄被設置為"粘滯位"(?chmod +t),則該?錄下的?件只能由
1. 超級管理員刪除

2. 該?錄的所有者刪除

3. 該?件的所有者刪除
?

一些提示

? ?錄的可執?權限是表?你可否在?錄下執?命令。

? 如果?錄沒有 -x 權限,則?法對?錄執?任何命令,甚??法 cd 進??, 即使?錄仍然有 -r 讀

權限(這個地?很容易犯錯,認為有讀權限就可以進??錄讀取?錄下的?件)

? ?如果?錄具有 -x 權限,但沒有 -r 權限,則??可以執?命令,可以 cd 進??錄。但沒有

?錄的讀權限

? 所以在?錄下,即使可以執? ls 命令,但仍然沒有權限讀出?錄下的?檔。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83251.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83251.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83251.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python函數返回值的藝術:為何True/False是更優實踐及例外情況分析

在Python編程實踐中,子程序的返回值設計往往是一個容易被忽視但卻至關重要的設計決策。本文將深入探討為什么返回True/False往往是更好的選擇,何時應該避免這種做法,以及如何處理與None值相關的問題。 為什么返回True/False是更好的實踐&…

STM32單片機內存分配詳細講解

單片機的內存無非就兩種,內部FLASH和SRAM,最多再加上一個外部的FLASH拓展。在這里我以STM32F103C8T6為例子講解FLASH和SRAM。 STM32F103C8T6具有64KB的閃存和20KB的SRAM。 一. Flash 1.1 定義 非易失性存儲器,即使在斷電后,其所…

【Tools】Visual Studio使用經驗介紹(包括基本功能、遠程調試、引入第三方庫等等)

這里寫目錄標題 1. VS基本使用1.1. 快捷鍵1.2. 查看變量地址1.3. 查看代碼匯編1.4. visual studio 熱重載功能的使用1.5. vs遠程服務器調試1.6. 引入第三方庫VLD1.7. release debug模式 1. VS基本使用 1.1. 快捷鍵 ctrl c :復制光標所在行 注意:只需要光標在這…

網絡爬蟲學習之httpx的使用

開篇 本文整理自《Python3 網絡爬蟲實戰》,主要是httpx的使用。 筆記整理 使用urllib庫requests庫的使用,已經可以爬取絕大多數網站的數據,但對于某些網站依然無能為力。 這是因為這些網站強制使用HTTP/2.0協議訪問,這時urllib和r…

Python內存管理:賦值、淺拷貝與深拷貝解析

賦值與共享資源 在Python中,直接賦值操作(如 list2 list1)會導致兩個變量共享同一個內存地址。這意味著對 list1 的修改會直接影響到 list2,因為它們指向同一個對象。 注意: 賦值等于完全共享資源 如果我們不希望這樣完全共享&…

CentOS7原有磁盤擴容實戰記錄(LVM非LVM)【針對GPT分區】

一、環境 二、命令及含義 fdisk ????fdisk?是一個較老的分區表創建和管理工具,主要支持MBR(Master Boot Record)格式的分區表。MBR分區表支持的硬盤單個分區最大容量為2TB,最多可以有4個主分區。fdisk通過命令行界面進行操…

獲取相機圖像(ROS2)

文章目錄 前言一、獲取筆記本自帶相機圖像1.打開終端2.安裝usb-cam功能包3.啟動相機節點4.再打開一個終端5.啟動rqt查看圖像(1)方法一:點擊窗口選項,打開圖像話題(2)方法二:使用命令行,直接打開圖像話題 二、獲取USB相機圖像總結 …

Go 語言中接口類型轉換為具體類型

類型轉換方法 在 Go 語言中,將接口類型轉換為具體類型主要有以下幾種方法: 1. 類型斷言(Type Assertion) var i interface{} "hello"// 基本形式 s : i.(string) // 將接口i轉換為string類型 fmt.Println(s) // 輸…

ES C++客戶端安裝及使用

介紹 Elasticsearch , 簡稱 ES ,它是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制,restful 風格接口,多數據源&…

力扣-94.二叉樹的中序遍歷

題目描述 給定一個二叉樹的根節點 root &#xff0c;返回 它的 中序 遍歷 。 class Solution { public:void inorder(TreeNode* root, vector<int>& res){//C這里&一定要加if(!root)return;inorder(root->left,res);res.push_back(root->val);inorder(ro…

《大模型微調實戰:Llama 3.0全參數優化指南》

全參數微調&#xff08;Full Parameter Fine-Tuning&#xff09;是推動大模型適應垂直領域任務的核心技術&#xff0c;尤其對于Llama 3.0這類千億級參數模型而言&#xff0c;其性能優化與場景適配能力直接決定了實際應用價值。然而&#xff0c;全參數微調面臨計算成本高、內存占…

張 提示詞優化(相似計算模式)深度學習中的損失函數優化技巧

失函數的解釋 損失函數代碼解析 loss = -F.log_softmax(logits[

《Spring Boot 4.0新特性深度解析》

Spring Boot 4.0的發布標志著Java生態向云原生與開發效能革命的全面邁進。作為企業級應用開發的事實標準框架&#xff0c;此次升級在運行時性能、云原生支持、開發者體驗及生態兼容性四大維度實現突破性創新。本文深度解析其核心技術特性&#xff0c;涵蓋GraalVM原生鏡像支持、…

協作賦能-1-制造業生產流程重構

制造業生產流程重構——從“信息孤島”到“全鏈協同” 在制造業的數字化轉型浪潮中&#xff0c;一個看似矛盾的現象正在蔓延&#xff1a;企業部署了ERP、MES、PLM等管理系統&#xff0c;卻仍未擺脫“紙質工單滿天飛、跨部門扯皮不斷”的困境。以汽車制造業為例&#xff0c;其…

基于React的高德地圖api教程002:自定義地圖樣式

文章目錄 2、自定義地圖樣式2.1 自定義底圖樣式2.2 添加衛星地圖和路網圖2.3 完整代碼下載2、自定義地圖樣式 2.1 自定義底圖樣式 高德地圖提供了多種地圖樣式,對底圖進行設置,可選樣式如下圖所示: 添加地圖樣式切換控件: <div style={{marg

谷歌Gemini生圖升級:與GPT-4o的對決,誰更勝一籌?

在人工智能技術的快速發展中&#xff0c;圖像生成&#xff08;即“生圖”&#xff09;已經成為AI領域的一大熱點。谷歌最近對其多模態模型Gemini 2.0 Flash的生圖功能進行了升級&#xff0c;從之前的“實驗版”&#xff08;Gemini 2.0 Flash Experimental Image Generation&…

OpenAI官方指南,詳細解釋了何時使用哪種AI模型

&#xff08;1&#xff09;GPT-4o ? 日常任務專家&#xff1a;頭腦風暴/會議紀要/郵件撰寫/創意生成 ? 全模態支持&#xff1a;兼容GPTs插件/數據分析/圖像生成/畫布協作/高級語音等功能&#xff0c;支持文檔/圖片/CSV/音視頻等多格式輸入 【典型用例】 ? 將會議記錄提煉…

火山引擎發展方向

火山引擎作為字節跳動旗下的企業級技術服務平臺&#xff0c;要發展客戶需要結合自身技術優勢、行業趨勢和市場需求&#xff0c;制定差異化的策略。以下是一些關鍵方向和建議&#xff1a; --- ### **一、明確目標市場定位** 1. **聚焦核心賽道** - **泛互聯網行業**&…

在 Angular 中, `if...else if...else`

在 Angular 中&#xff0c;模板語法本身并不直接支持 if...else if...else 這樣的多條件分支結構。不過&#xff0c;你可以通過使用 *ngIf 指令結合其else模板功能來實現類似的效果。下面是如何模擬if...else if...else邏輯的方法&#xff1a; 示例&#xff1a;實現if...else …

利用Backtrader實現回測策略的可視化與圖表繪制

Plotting功能是Backtrader的一大特色,能夠幫助直觀地展示交易數據、策略表現等信息,為分析和優化交易策略提供有力支持。 (一)Backtrader的主要特點 靈活性:支持多種數據源和交易接口,用戶可以根據自己的需求靈活選擇。無論是股票、期貨、外匯等不同類型的金融市場數據,…