【從零開始學習Linux】一文帶你了解Shell外殼及用戶權限(一)

🚩紙上得來終覺淺, 絕知此事要躬行。
🌟主頁:June-Frost
🚀專欄:Linux入門

🔭【從零開始學習Linux】系列均屬于Linux入門,主要包含Linux操作系統下的指令、操作、權限以及開發工具,使得擁有基本編寫代碼的能力。

🔥該文章主要了解Shell外殼(理論)及用戶權限,其中用戶權限將分為兩部分進行總結敘述。

目錄:

  • 🔭 操作系統的基本結構和運行原理
  • 🔭 用戶權限
    • ?? 用戶的分類
    • ?? 身份切換(su指令)
    • ?? 短暫提權
  • 🔭 權限管理
    • ?? 更改權限
  • ?? 結語

🔭 操作系統的基本結構和運行原理

?內核和外殼是操作系統的兩個主要組成部分。

?內核是操作系統的核心,負責管理系統的硬件和軟件資源。它直接與硬件設備進行交互,控制硬件設備、管理內存、提供硬件接口、處理基本I/0、管理文件系統等。此外,內核還為程序分配內存和CPU時間,以及提供系統調用接口,以便應用程序能夠使用操作系統的功能。

?外殼是用戶與內核交互的界面,它提供了用戶與操作系統的交互方式。它實際上是一個命令解釋器,解釋用戶輸入的命令并送到內核執行。它還提供了一些基本的命令和工具,例如文件管理、進程管理、設備管理等。此外,外殼還提供了圖形界面(例如windows系統),使得用戶可以通過圖形界面與操作系統進行交互。

?內核與外殼協同工作,使得計算機能夠正常運轉,并為應用程序提供穩定、高效的運行環境。

重點來了??

?對于Linux系統來說,其內核本身只是一個基礎組件。由于考慮到操作系統的易用性(用戶不能直接訪問操作系統)和安全性(防止用戶非法操作導致操作系統受到損害),于是shell外殼就有了存在的意義,它是用戶與內核之間的橋梁,為用戶提供操作系統的接口。Shell外殼可以理解為用戶與操作系統之間的交互界面,它接收用戶輸入的指令并提交給內核處理,同時將處理結果反饋給用戶

?Shell外殼是一個用C語言編寫的程序,在系統啟動期間,它都會存在。當用戶輸入有風險,自定義的指令時,Shell會創建子進程去執行該操作。

?在CentOS 7 中 ,Shell通過Bash具體實現。


🔭 用戶權限

?? 用戶的分類

? Linux下一般有兩種用戶:

  • 超級管理員:具有一切操作權力,其用戶名為root
  • 普通用戶:為了使用Linux系統資源而建立的,通常由管理員創建,權限受限。

?? 身份切換(su指令)

  • 語法su [用戶名]
    功能:變更用戶身份。

?如果使用su命令時沒有指定用戶,那么默認會切換到root用戶的身份。并且,su - 也可以切換到root用戶。

?susu - 是不一樣的,主要區別在于它們切換用戶身份時所攜帶的Shell環境su命令只切換用戶身份,而不改變Shell環境。這意味著,使用su命令切換到root用戶后,你的工作目錄和環境變量仍然保持原用戶的設置,而不是root用戶的設置。相比之下,su-命令在切換用戶身份的同時,也會將Shell環境切換到目標用戶的環境。具體來說,使用su-命令切換到root用戶后,你的工作目錄會變成root用戶的工作目錄,環境變量也會變成root用戶的環境變量。

📙注意:

  1. 當普通用戶切換成root用戶是需要輸入root密碼的。
  2. 當普通用戶切換到另一個普通用戶則需要對方的密碼。
  3. root用戶切換為普通用戶是不需要密碼的。


?? 短暫提權

? 在Linux或Unix系統中,當你需要執行需要管理員權限的命令,但又不想以root用戶身份登錄時,可以使用sudo。例如,你可能需要使用sudo來安裝軟件包、修改系統配置、執行系統管理等操作。

📙sudo:

  • 語法sudo [選項] 命令
  • 功能:用于暫時獲得超級用戶權限來執行特定的命令。

?使用sudo時,需要輸入當前用戶的密碼以驗證其權限。這里無法執行是因為cy用戶不在白名單中,需要使用vim去改變配置文件。


🔭 權限管理

?可以從兩個方面去看待權限,首先權限一定存在身份限制,定義了用戶對特定資源的訪問能力,其次權限一定得保證對應的資源有人們所需的屬性,例如:影視軟件的屬性就是讓人們觀看電影,而身份(vip)的不同決定了能免費觀看什么電影。

?在之前的文章中,提到了Linux系統的一個設計理念——Linux系統下一切皆文件,所以談及Linux的權限問題,主要是在文件權限上。

📗在Linux中,訪問者的身份分為3類:

  • 擁有者(owner)指的是創建文件或目錄的用戶,每個文件或目錄都有一個唯一的擁有者。擁有者可以對該文件或目錄進行修改、刪除等操作。
  • 所屬組(group)是擁有者所在的組,可以是系統中的任何一個組。所屬組決定了擁有者所在的組對文件或目錄的訪問權限。
  • other是指不屬于擁有者和所屬組的用戶,也就是除了擁有者和所屬組的成員之外的所有用戶。other用戶對文件或目錄的訪問權限取決于系統管理員設置的權限。

💫 所屬組存在的意義:

?所屬組(group)的存在主要是出于管理方面的考慮,尤其是要控制對文件和其他系統資源的訪問。在Linux中,每個用戶都可能隸屬于一個或多個組,而每個組也都有唯的一個名稱和一個組標識符(GID)。用戶和組ID的主要用途有二:一是確定各種系統資源的所有權;二是控制賦予進程訪問上述資源的權限。例如,每個文件都屬于某個特定的用戶和組,而每個進程也擁有相應的用戶ID和組ID屬性,這就決定了進程的所有者,以及進程訪問文件時所擁有的權限。

?在團隊工作的場景下,所屬組的概念就很容易理解。比如在老師的計算機里,可以設置文件權限,就能限制非自己班級(即非本組)的其他用戶的可讀權限,也可以讓自己的班級(即本組)成員可以修改文件。

📗Linux中操作的對象是文件,而文件對應的屬性也有3種:

  • 讀(r):表示具有讀取文件內容的權限。
  • 寫(w):表示具有修改文件內容的權限。
  • 執行(x):表示具有執行文件的權限。

?在文件屬性列表上,對應有9個字符,每3個為一組,分別對應擁有者,所屬組和other的權限。例如:這個文件擁有者的權限為rw- ,說明擁有者有讀權限,寫權限,但是沒有執行權限。

?如果一個用戶同時是擁有者和所屬組,系統在匹配時只會匹配一次,會將該用戶匹配到擁有者,然后看對應是否有權限,所以如果同一個用戶如果作為擁有者沒有讀權限,作為所屬組有讀權限,在這種匹配下是不可以讀文件的。

? 對于一個文件是否可執行,需要滿足兩個條件:① 有執行權限。② 該文件是個可執行文件。

?? 更改權限

?一般來說,只有文件的擁有者和root才可以改變文件的權限。

📙chmod:

  • 語法chmod [參數] 權限 文件名
  • 功能:更改文件或目錄的權限。它允許用戶控制誰可以讀取、寫入和執行文件。
  • 常用選項R 遞歸修改目錄文件的權限

? 權限的表示格式:[{ugoa}{+-=}{rwx}]

u:表示擁有者(owner)權限。
g:表示所屬組(group)權限。
o:表示其他用戶(others)權限。
a:表示所有用戶(all)權限。
+:表示添加(增加)權限。
-:表示移除(刪除)權限。
=:表示設置(明確)權限。
r:表示讀取(read)權限。
w:表示寫入(write)權限。
x:表示執行(execute)權限。

?這些參數可以組合在一起使用,以精確地控制需要修改的權限。

在這里插入圖片描述

?除了這種方式,還有一種三位8進制數字的方式來改變權限。由于一個身份所對應的文件權限,就只有rwx,那么每一位如果有對應的權限就為1,如果沒有就為0,所以就形成了 000 ~ 111 的一個二進制組合,轉化8進制就為0~7。例如:chmod 755 filename 就會將文件的擁有者設置為讀、寫和執行權限,而所屬組和其他用戶只有讀和執行權限。


?? 結語

?文章到這里就結束了,如果對你有幫助,你的點贊將會是我的最大動力,如果大家有什么問題或者不同的見解,歡迎大家的留言~

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

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

相關文章

@DS動態切換數據源

1.DS概述 DS是自定義注解,可以作用于方法或類上,用于切換數據源。當注解添加到類上時,意味著此類里的方法都使用此數據源;當注解添加到方法上時,意味著此方法上使用的數據源優先級高于其他一切配置。 2.DS使用 2.1 導…

基于.net framework4.0框架下winform項目實現寄宿式web api

首先Nuget中下載包:Microsoft.AspNet.WebApi.SelfHost,如下: 注意版本哦,最高版本只能4.0.30506能用。 1.配置路由 public static class WebApiConfig{public static void Register(this HttpSelfHostConfiguration config){// …

Axure插件瀏覽器一鍵安裝:輕松享受高效工作!

Axure插件對原型設計師很熟悉,但由于Axure插件是在國外開發的,所以在安裝Axure插件時不僅需要下載中文包,激活步驟也比較繁瑣,有時Axure插件與計算機系統不匹配,Axure插件格式不兼容。本文將詳細介紹如何安裝Axure插件…

uniapp開發小程序-pc端小程序下載文件

fileName包含文件名后綴名,比如test.png這種格式 api.DownloadTmtFile后端接口返回的是文件的二進制流 值得注意的是,微信開發者工具中是測試不了wx.saveFileToDisk的,需要真機或者體驗版測試 handleDownload(fileName) {if (!fileName) retu…

CCFCSP試題編號:201912-2試題名稱:回收站選址

這題只要比較坐標的四周&#xff0c;然后計數就可以了。 #include <iostream> using namespace std;int main() {int n;cin >> n;int arr[1005][2] { 0 };int res[5] { 0 };int up 0;int down 0;int left 0;int right 0;int score 0;for (int i 0; i <…

QT 在Windows下實現ping功能(ICMP)

前言 很多時候&#xff0c;我們可能會圖省事直接調用系統中的ping命令&#xff0c;但這是很不科學的~ 廢話不多說&#xff0c;直接上代碼.. .pro文件 在.pro文件末尾添加一行&#xff1a; LIBS -liphlpapi -lws2_32 .h文件 在.h文件中加入&#xff1a; #include <Q…

23款奔馳GLC260L升級原廠360全景影像 高清環繞

本次星駿匯小許介紹的是23款奔馳GLC260L升級原廠360全景影像&#xff0c;上帝視角看清車輛周圍環境&#xff0c;更輕松駕駛 升級360全景影像系統共有前后左右4個攝像頭&#xff0c;分別在車頭&#xff0c;車尾&#xff0c;以及兩邊反光鏡下各一個&#xff0c;分別用來采集車頭&…

C# 宏--釋義及實例

1.宏-釋義 在C#中&#xff0c;宏&#xff08;Macro&#xff09;通常指的是預處理指令&#xff08;Preprocessor Directive&#xff09;&#xff0c;用于在編譯時對源代碼進行一些宏替換或條件編譯的操作。C#中的宏使用預處理器指令#define和#undef來定義和取消定義宏&#xff…

C++string_view簡介

1. 簡介 C17之后才有string_view&#xff0c;主要為了解決C語言常量字符串在std::string中的拷貝問題。 即readonly的string。 2. 引入 2.1 隱式拷貝問題 將C常量字符串拷貝了一次 #include <iostream> #include <string>int main() {std::string s{ "He…

Modbus RTU、Modbus 庫函數

Modbus RTU 與 Modbus TCP 的區別 一般在工業場景中&#xff0c;使用 Modbus RTU 的場景更多一些&#xff0c;Modbus RTU 基于串行協議進行收發數據&#xff0c;包括 RS232/485 等工業總線協議。采用主從問答式&#xff08;master / slave&#xff09;通信。 與 Modbus TCP 不…

基于springboot實現實習管理系統的設計與實現項目【項目源碼+論文說明】計算機畢業設計

基于sprinmgboot實現實習管理系統的設計與實現演示 摘要 隨著信息化時代的到來&#xff0c;管理系統都趨向于智能化、系統化&#xff0c;實習管理也不例外&#xff0c;但目前國內仍都使用人工管理&#xff0c;市場規模越來越大&#xff0c;同時信息量也越來越龐大&#xff0c;…

普通平衡樹

題意&#xff1a;略&#xff0c;題中較清晰。 用二叉查找樹來存儲數據&#xff0c;為了增加效率&#xff0c;盡量使左子樹和右子樹的深度差不超過一&#xff0c;這樣可以時間控制在logn&#xff0c;效率比較高。 右旋和左旋&#xff0c;目的是為了維護二叉樹的操作&#xff0…

Dubbo引入Zookeeper等注冊中心簡介以及DubboAdmin簡要介紹,為后續詳解Dubbo各種注冊中心做鋪墊!

文章目錄 一&#xff1a;Dubbo注冊中心引言 1&#xff1a;什么是Dubbo的注冊中心&#xff1f; 2&#xff1a;注冊中心關系圖解 3&#xff1a;引入注冊中心服務執行流程 4&#xff1a;Dubbo注冊中心好處 5&#xff1a;注冊中心核心作用 二&#xff1a;注冊中心實現方案 …

Springboot+vue的新冠病毒密接者跟蹤系統(有報告)。Javaee項目,springboot vue前后端分離項目

演示視頻&#xff1a; Springbootvue的新冠病毒密接者跟蹤系統(有報告)。Javaee項目&#xff0c;springboot vue前后端分離項目 項目介紹&#xff1a; 本文設計了一個基于Springbootvue的新冠病毒密接者跟蹤系統&#xff0c;采用M&#xff08;model&#xff09;V&#xff08;v…

HttpClient實現 get、post、put、delete請求【轉】

來自&#xff1a;HttpClient實現 get、post、put、delete請求_httpclient put請求-CSDN博客 目錄 HttpClient HttpClient的主要功能 httpclient使用示例主要步驟 Spring Boot 工程結構 HttpClient實現主要代碼&#xff1a; GET POST PUT Delete HttpClient HttpCli…

信息系統項目管理師-干系人管理論文提綱

快速導航 1.信息系統項目管理師-項目整合管理 2.信息系統項目管理師-項目范圍管理 3.信息系統項目管理師-項目進度管理 4.信息系統項目管理師-項目成本管理 5.信息系統項目管理師-項目質量管理 6.信息系統項目管理師-項目資源管理 7.信息系統項目管理師-項目溝通管理 8.信息系…

景區智慧旅游智能化系統方案:PPT全文58頁,附下載

關鍵詞&#xff1a;智慧景區解決方案&#xff0c;智慧文旅解決方案&#xff0c;智慧旅游解決方案&#xff0c;智慧文旅綜合運營平臺 一、景區智慧旅游智能化系統建設背景 近年來&#xff0c;隨著信息技術的快速發展和普及&#xff0c;以及旅游市場的不斷擴大和升級&#xff0…

電腦自動刪除文件怎么辦?如何恢復?

在數字化時代&#xff0c;電腦已經成為人們不可或缺的工具之一。然而&#xff0c;由于各種原因&#xff0c;我們有時會遇到電腦自動刪除文件的情況&#xff0c;這給我們的工作和生活帶來了很多不便。那么&#xff0c;當電腦自動刪除文件時&#xff0c;我們應該如何處理呢&#…

【Python爬蟲】8大模塊md文檔從0到scrapy高手,第8篇:反爬與反反爬和驗證碼處理

本文主要學習一下關于爬蟲的相關前置知識和一些理論性的知識&#xff0c;通過本文我們能夠知道什么是爬蟲&#xff0c;都有那些分類&#xff0c;爬蟲能干什么等&#xff0c;同時還會站在爬蟲的角度復習一下http協議。 Python爬蟲和Scrapy全套筆記直接地址&#xff1a; 請移步這…

數據結構與算法編程題14

設計一個算法&#xff0c;通過一趟遍歷在單鏈表中確定值最大的結點。 #include <iostream> using namespace std;typedef int Elemtype; #define ERROR 0; #define OK 1;typedef struct LNode {Elemtype data; //結點保存的數據struct LNode* next; //結構體指針…