【Linux】權限的理解和使用

在這里插入圖片描述

👦個人主頁:Weraphael
?🏻作者簡介:目前正在學習c++和算法
??專欄:Linux
🐋 希望大家多多支持,咱一起進步!😁
如果文章有啥瑕疵,希望大佬指點一二
如果文章對你有幫助的話
歡迎 評論💬 點贊👍🏻 收藏 📂 加關注😍


目錄

  • 一、Linux下用戶的分類
      • 1.1 用戶切換
  • 二、用戶和用戶組
      • 2.1 文件擁有者(概念)
      • 2.2 用戶組(概念)
      • 2.3 其他人(概念)
  • 三、文件權限
      • 3.1 文件屬性
      • 3.2 修改文件權限
        • 3.2.1 數字類型修改文件權限
        • 3.2.2 符號類型修改文件權限
      • 3.3 修改文件所屬組
      • 3.4 修改文件擁有者
      • 3.5 默認權限
        • 3.5.1 權限掩碼
  • 四、目錄權限
  • 五、粘滯位
      • 5.1 引入
      • 5.2 如何設置粘滯位

一、Linux下用戶的分類

Linux下有兩種用戶:超級用戶(root)、普通用戶

  • 超級用戶:基本不權限的約束。命令提示符是#
  • 普通用戶:受權限的約束。命令提示符是$

1.1 用戶切換

  • 普通用戶 ->超級用戶

【命令】 su / su -
【說明】

  1. 輸入的密碼是超級用戶的密碼
  2. 退回普通用戶exit or 熱鍵Ctrl + d

在這里插入圖片描述

  • 超級用戶 -> 普通用戶

【命令】 su 普通用戶名
【說明】 不要密碼,從這可以看出超級用戶基本不權限的約束

在這里插入圖片描述

  • 普通用戶 -> 另一個用戶

【命令】 su 另一個用戶名
【說明】 密碼需要輸入另一個用戶的密碼

這里就不為大家演示了

  • 對某條指令提權(不用轉化root

【命令】 sudo 某條指令
【說明】輸入的是普通用戶的密碼

大家可能會有疑問,我們對指令進行提權,為什么輸入的是普通用戶的密碼?

大家可以先在自己的命令行解釋器輸入sudo 隨便一個指令,其實目前我們普通用戶沒辦法執行sudo,因為系統默認不信任你。除非未來將普通用戶添加到系統的信任名單里。由于目前知識有限,后期帶領大家配置。

二、用戶和用戶組

2.1 文件擁有者(概念)

初次接觸Linux的同學會覺得很怪異,為什么Linux會有這么多用戶,還分什么用戶組?

其實這個“用戶與用戶組”的功能可是相當健全并且好用的一個安全防護措施。這是因為Linux是一個多人多任務的系統,因此可能有很多人同時使用同一個服務器來進行開發,這就涉及到每個人的隱私權,有的人不喜歡把自己寫的代碼給別人看(因為自己寫的代碼時常會有bug,就像每個人的內褲一樣,有漏洞就不喜歡給別人看),因此文件擁有者的角色就顯得相當重要。

2.2 用戶組(概念)

用戶組是最有用的功能之一,就是當你在團隊進行協同開發的時候。舉例來說,假設你和你的舍友一起進入到騰訊實習。你在項目A組,而你的舍友在項目B組。這兩個組的項目是王者榮耀,哪個組寫的好就采用哪個組。假設某一天,你的老板要檢查你們組的代碼寫的怎么樣,但不能讓項目B組看到你們組的文件內容,此時該如何是好?

因此,是不是可以將老板拉入你們組(用戶組),這樣老板能看到整個組的開發進度,而別的組看不到,很方便吧!

這樣說可能還不容易理解。再舉一個例子,假設有一家人,爸爸叫張三,家里有三兄弟,三個人都有自己的房間,并且擁有一個客廳。

  • 用戶的意義:由于三兄弟都有自己各自的房間。所以他們不能闖入別人的房間窺視他人的隱私。
  • 用戶組的概念:由于客廳是共用的,三兄弟可以在客廳做任何事情,因為大家都是一家人。

這樣說大家應該有點了解了吧!張三家就是所謂的用戶組,至于三兄弟就是用戶,而這三個用戶是在同一個用戶組里。而三個用戶雖然在同一個用戶組內,但是有各自的私人空間,而設置用戶組共享,則可讓大家共同分享。

2.3 其他人(概念)

有一個叫李逵,它是三兄弟中張飛的同班同學,那么李逵就可以通過張飛進入張三的家,也可以通過張飛的同意進入他的房間。因此,李逵就是所謂的其他人(Others

因此,我們可以知道,在Linux里面,任何一個文件都具有用戶(User)、所屬組(Group)以及其他人(Other)三種身份,我們可以將以上的說明用下面的圖來解釋

在這里插入圖片描述

不過,這里有一個特殊的人物要介紹,那就是神父。神父具有神力,它想干嘛就可以干嘛。不打啞謎了,這個人其實在Linux中擔任root。所以要小心,這個root可是神父!

三、文件權限

3.1 文件屬性

在上篇博客講過,查看文件屬性的指令是ls -al或者是ll

在這里插入圖片描述

現在我們來拆分,以上字符串到底是什么意思

在這里插入圖片描述

第一欄代表文件的類型和權限。這個地方最需要注意,仔細看的話,你應該可以發現這一欄其實有十個字符。

  • 第一個字符代表這個文件是目錄或文件等。其中a.out的第一個字符是-,因此是文件。
    在這里插入圖片描述

  • 接下來的字符中,以三個位一組,且均為[rwx]的三個參數的組合。其中,[r]代表可讀、[w]代表可寫、[x]代表可執行。要注意的是這三個權限的位置不會改變,如果沒有權限,就會出現減號[-]而已。

在這里插入圖片描述

  • 實際例子

以下我在普通用戶wj中創建普通文件test.c并往里頭寫你好 testUser,并且文件的擁有者和所屬組都是wj,那么另一個普通用戶testUser能否看文件呢?

在這里插入圖片描述

答案是可以的,首先testUser不是擁有者,也不是所屬組,那就是其他人,而文件test.c對于其他人的權限只有r--,因此是可以讀的,但是不能寫

在這里插入圖片描述

那么現在還有一個問題,超級用戶root可以讀和寫嗎?

在這里插入圖片描述

通過以上實驗我們發現,超級用戶可以既可以查看、也可以修改(其實也可以執行,這里就不演示了)。那有的人就很奇怪,root既不是擁有者,也不是所屬組,怎么可能可以做得到?

別忘了,超級用戶root可是神父,具有神力,可以掌握一切!

3.2 修改文件權限

文權限修改使用的命令是chmod(change mode)。但是,權限的設置方法有兩種,分別可以使用數字或者符號來進行權限修改。

3.2.1 數字類型修改文件權限

Linux文件的基本權限就只有9個,分別是擁有者(owner)、所屬組(group)、其他人(others)三種身份各有自己的讀(read)、寫(write)、執行(execute)權限。假設現在有一個文件權限字符是[rwxrwxrwx],這9個權限是三個三個一組。其中,我們可以使用數字來代表各個權限,各權限的數組對照表如下:

r:4  (2^2)
w:2  (2^1)
x:1  (2^0)

每種身份(ownergroupothers)各自的三個權限(rwx)數字是需要累加的,例如當權限為[rwxrwx---],數字則是:

owner = rwx = 4 + 2 + 1 = 7
group = rwx = 4 + 2 + 1 = 7
others = --- = 0 + 0 + 0 = 0

所以等下我們設置權限時,該文件的權限數字就是770,修改權限的命令chmod的語法是:

chmod [權限數字] [文件或目錄]

舉個例子:假設現在有一個普通文件的權限是[rw-rw-r--],現在我要讓每種身份的人都可以執行此文件[rwxrwxr-x],那么權限數字就是775

在這里插入圖片描述

3.2.2 符號類型修改文件權限

因為九個權限分別是usergroupothers三種身份,那么我們就可以借ugo來代表三種身份的權限。此外,a則代表all,也就是全部人的身份。那么讀寫的權限就可以寫成rwx。因此,符號類型修改文件權限的語法如下:

chmod [身份] [設置符號] [權限] [文件或目錄]
// 身份選項:u、g、o
// 設置符號:+(加入)、-(移除)
// 權限:r、w、x

我們可以來實踐一下,假設有一個文件test.txt的權限為[-rwx---r-x],那我現在我想讓所屬組和其他人都具有rwx權限,那么命令應該為chmod g+rwx,o+rwx test.txt

在這里插入圖片描述

接下來我再假設所有人(包括擁有者)都不許對test.txt有讀、寫和可執行權限

在這里插入圖片描述

3.3 修改文件所屬組

修改文件擁有者的基本指令是chgrp(change group)。注意,要被修改的組名必須在/etc/group文件中存在才行

在這里插入圖片描述

假現將text.txt文件的所屬組改為tempuser(此用戶我已經創建好了)

在這里插入圖片描述

奇怪,為什么提示說“操作不被允許”?我們知道:你拿一個東西需要征得別人的允許,同樣的,你給別人一個東西也需要征得別人的允許。因此,現在有一個暴力的方法,將自己提升為神父root,別人不要也得要

在這里插入圖片描述

3.4 修改文件擁有者

修改文件擁有者的基本指令是chown(change owner),要注意的是,用戶必須是已經存在系統中的賬號,也就是在/etc/passwd這個文件中有記錄的用戶名稱才能被修改

在這里插入圖片描述
假設你已經是root身份了,現將text.txt文件的擁有者改為tempuser(此用戶我已經創建好了)

在這里插入圖片描述

那么現在我要將擁有者和所屬組全部改回wj,又該怎么做呢?難道要分別使用兩個指令來更改?會不會麻煩了些?

在這里插入圖片描述

3.5 默認權限

無論是創建文件還是創建目錄,系統都會分配默認權限

首先給出結論

  • 系統默認給普通文件的起始權限是666,即[rw-rw-rw-]
  • 默認給目錄的起始權限是777,即[rwxrwxrwx]

在這里插入圖片描述

奇怪?那么為什么創建出來的默認權限和我們說的不一樣?

3.5.1 權限掩碼

這是因為Linux存在權限掩碼umask

在這里插入圖片描述

CentOS 7.6中,默認的權限掩碼為0002,平臺不同,權限掩碼可能存在差異

  • 需要注意的是:umask的數字指的是該默認值需要減掉的權限

什么意思呢?以文件為例:在上面我們說過了,系統默認給普通文件的起始權限是666,轉換為二進制1010011010,默認的權限掩碼轉換為二進制0000000010。由于umask的數字指的是該默認值需要減掉的權限,因此666的二進制從右向左的第二個1需要去掉,因此最后的結果是110110100,轉換為權限rw-rw-r--,這下剛剛好也解釋完了

但是默認權限的計算方式是以下這樣的:

  • 默認權限的計算方式:默認權限 = 起始權限 & (~umask)

在這里插入圖片描述

目錄默認權限的計算也是一樣的這里就不為大家演示了

四、目錄權限

目錄的基礎權限也是:r(讀) w(寫) x(可執行)

  • r:是否允許查看該目錄中的內容

在這里插入圖片描述

  • w:是否允許當前目錄進行創建、更改、刪除

在這里插入圖片描述

  • x:是否允許用戶進入當前目錄

在這里插入圖片描述

五、粘滯位

5.1 引入

大家想想:有多個人在一個共享目錄里分享文件,那么里頭的人是否能刪除你的文件呢?

在這里插入圖片描述

竟然可以刪除!!那這就很可怕了。

假設一個公司有一個共享目錄,供多個員工存儲和共享文件。如果沒有粘滯位,某個員工誤刪了其他員工的文件,那么對于其他員工來說,他們將無法恢復自己的文件,也無法確定是誰刪除了自己的文件,這會導致很大的不便和困擾。

因此才有了粘滯位:一般是給共享目錄設置,當一個目錄被設置粘滯位了后,只有文件所有者和超級用戶root才能夠刪除或重命名該目錄下的文件,其他用戶則不能進行這些操作。

5.2 如何設置粘滯位

使用chmod命令可以設置和取消目錄的粘滯位。對于一個目錄,設置粘滯位的命令為:

chmod +t [共享目錄]

取消粘滯位的命令為:

chmod -t [共享目錄]

在這里插入圖片描述

以后在這種共享目錄中,別的用戶就無法刪除里頭的文件。

在這里插入圖片描述

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

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

相關文章

Dapper的入門

Dapper 是一個輕量級的對象關系映射 (ORM) 工具,用于在.NET應用程序中處理數據庫操作。ORM 是一種編程技術,它將關系數據庫和面向對象編程語言之間的數據轉換和交互進行了封裝和簡化。Dapper 提供了一種簡單、高效的方式來執行數據庫查詢、插入、更新和刪…

【MySQL--->事務】

文章目錄 [TOC](文章目錄) 一、基本概念二、事務的操作1.設置全局事務隔離級別2.設置事務提交方式3.事務操作 三、事務隔離性1.隔離性概念2 .隔離級別設置 四、MVCC多版本控制2. read view 一、基本概念 事務是由若干條具有邏輯相關性的SQL語句組成的,用來完成某種任務的**邏輯…

C語言--判斷年月日是否合理

一.題目描述 比如輸入2001,2,29,輸出: 不合理 。因為平年的二月只有28天 比如輸入2000,6,31,輸出:不合理。因為6月是小月,只有30天。 二.思路分析 本題主要注意兩個問…

輕量服務器是不是vps,和vps有什么區別

1.輕量型服務器的定義和特點 輕量型服務器是介于云服務器和共享型服務器之間的一種解決方案。它提供較為獨立的資源分配,但規模較小,適用于中小型網站和應用程序。輕量型服務器的硬件資源來源于大型的公有云集群的虛擬化技術。輕量型服務器的性能和帶寬…

強化學習--多維動作狀態空間的設計

目錄 一、離散動作二、連續動作1、例子12、知乎給出的示例2、github里面的代碼 免責聲明:以下代碼部分來自網絡,部分來自ChatGPT,部分來自個人的理解。如有其他觀點,歡迎討論! 一、離散動作 注意:本文均以…

ERP、CRM、SRM、PLM、HRM、OA……都是啥意思

在天某微電子上班,經常會聽說一些系統或平臺名稱,例如ERP、CRM、SRM、PLM、HRM、OA、FOL等。 這些系統,都是干啥用的呢? █ ERP(企業資源計劃) 英文全稱:Enterprise Resource Planning 定義…

如何使用SD-WAN提升物流供應鏈網絡效率

案例背景 本次分享的物流供應鏈企業是一家國際性的大型企業,專注于提供全球范圍內的物流和供應鏈解決方案。案例用戶在不同國家和地區均設有多個分支機構和辦公地點,以支持客戶需求和業務運營。 在過去,該企業用戶使用傳統的MPLS網絡來連接各…

OceanBase:04-單機在線轉分布式部署

目錄 1.當前部署情況 2.單Zone多OBServer模式 3.多Zone多OBServer模式 3.1 集群規劃 3.2 安裝OBServer程序 3.3 新增Zone 3.4 啟動Zone 3.5 向Zone新增OBserver節點 3.6重復3.2~3.5新增其他Zone 4.擴充資源 OceanBase 數據庫為單機分布式一體化架構,支持單…

ssh遠程使用jupyter notebook

Jupyter配置 密碼生成哈希值 jupyter lab password拷貝出哈希值 vi /root/.jupyter/jupyter_server_config.json生成配置文件 jupyter-lab --generate-config編輯配置文件 vi /root/.jupyter/jupyter_lab_config.py查找 /password 按n查找一下一個 c.ServerApp.password …

純干貨丨電腦監控軟件有哪些(三款電腦監控軟件大盤點)

電腦監控軟件在日常生活和工作中的應用越來越廣泛。這些軟件可以幫助我們監控電腦的使用情況,保護電腦的安全,提高工作效率。本文將介紹一些高人氣的電腦監控軟件,并分享一些純干貨。 1、 域之盾軟件----電腦監控系統 是一款功能強大的電腦監…

LeetCode:307. 區域和檢索 - 數組可修改(樹狀數組 C++)

目錄 307. 區域和檢索 - 數組可修改 題目描述: 實現代碼與解析: 樹狀數組: 原理思路: 307. 區域和檢索 - 數組可修改 題目描述: 給你一個數組 nums ,請你完成兩類查詢。 其中一類查詢要求 更新 數組…

Linux輸入設備應用編程(觸摸屏獲取坐標信息)

上一章學習了開發板外接鍵盤并獲取鍵盤的的輸入 Linux輸入設備應用編程(鍵盤,按鍵)-CSDN博客 本章編寫觸摸屏應用程序,獲取觸摸屏的坐標信息并將其打印出來 目錄 一 觸摸屏數據分析(觸摸,點擊&#xff…

采用connector-c++ 8.0操作數據庫

1.下載最新的Connector https://dev.mysql.com/downloads/connector/cpp/,下載帶debug的庫。 解壓縮到本地,本次使用的是帶debug模式的connector庫: 注:其中mysqlcppconn與mysqlcppconn8的區別是: 2.在cmakelist…

請簡要說明 Mysql 中 MyISAM 和 InnoDB 引擎的區別

“請簡要說明 Mysql 中 MyISAM 和 InnoDB 引擎的區別”。 屏幕前有多少同學在面試過程與遇到過類似問題, 可以在評論區留言:遇到過。 考察目的 對于 xxxx 技術的區別,在面試中是很常見的一個問題 一般情況下,面試官會通過這類…

SpringBoot監聽器解析

監聽器模式介紹 監聽器模式的要素 事件監聽器廣播器觸發機制 SpringBoot監聽器實現 系統事件 事件發送順序 監聽器注冊 監聽器注冊和初始化器注冊流程類似 監聽器觸發機制 獲取監聽器列表核心流程: 通用觸發條件: 自定義監聽器實現 實現方式1 實現監聽器接口: Order(1) …

[操作系統]進程和線程

目錄 1.什么是進程 1.1進程控制塊抽象 1.2 CPU 分配 —— 進程調度(Process Scheduling) 1.3內存分配 —— 內存管理(Memory Manage) 1.4進程間通信(Inter Process Communication) 2.線程 2.1概念 2.2為什么要有線程 2.3線…

論文閱讀 Forecasting at Scale (二)

最近在看時間序列的文章,回顧下經典 論文地址 項目地址 Forecasting at Scale 3.2、季節性 3.3、假日和活動事件3.4、模型擬合3.5、分析師參與的循環建模4、自動化預測評估4.1、使用基線預測4.2、建模預測準確性4.3、模擬歷史預測4.4、識別大的預測誤差 5、結論6、致…

【Python】重磅!這本30w人都在看的Python數據分析暢銷書更新了!

Python 語言極具吸引力。自從 1991 年誕生以來,Python 如今已經成為最受歡迎的解釋型編程語言。 【文末送書】今天推薦一本Python領域優質數據分析書籍,這本30w人都在看的書,值得入手。 目錄 作譯者簡介主要變動導讀視頻購書鏈接文末送書 pan…

【計算機方向】通信、算法、自動化、機器人、電子電氣、計算機工程、控制工程、計算機視覺~~~~~合集!!!

◆本文為大家梳理了近期可投的EI國際會議,涵蓋計算機各個學科方向,均可EI檢索 本期EI會議匯總合集涵蓋領域:計算機視覺、物聯網、算法、通信、智能技術、人工智能、人機交互、機器人、電子電氣等眾多領域! 本期所推薦的EI會議有…

ros2不同機器通訊時IP設置

看到這就是不同機器的IP地址,為了避免在路由器為不同的機器使用DHCP分配到上面的地址,可以設置DHCP分配的范圍:(我的路由器是如下設置的,一般路由器型號都不一樣,自己找一下) 防火墻設置-----&…