shell命令運行原理及Linux權限問題

目錄

  • shell命令以及運行原理
  • 用戶管理
    • 添加用戶
    • 刪除用戶
    • sudo
  • Linux權限的概念
  • Linux權限管理
    • 文件訪問者的分類(人)
    • 文件類型和訪問權限(事物屬性)
    • 文件權限值的表示方法
    • 文件訪問權限的相關設置方法
  • 目錄的權限
  • 粘滯位

shell命令以及運行原理

Linux嚴格意義上說的是一個操作系統,我們稱之為“核心(kernel)“ ,但我們一般用戶,不能直接使用kernel。而是通過kernel的“外殼”程序,也就是所謂的shell,來與kernel溝通。如何理解?為什么不能直接使用kernel?

從技術角度:
Shell的最簡單定義命令行解釋器 (command Interpreter) 主要包含:

  1. 將使用者的命令翻譯給核心(kernel)處理。
  2. 同時,將核心的處理結果翻譯給使用者。

對比windows GUI,我們操作windows 不是直接操作windows內核,而是通過圖形接口,點擊,從而完成我們的操作(比如進入D盤的操作,我們通常是雙擊D盤盤符.或者運行起來一個應用程序)。

shell 對于Linux,有相同的作用,主要是對我們的指令進行解析,解析指令給Linux內核。反饋結果在通過內核運行出結果,通過shell解析給用戶。

總結:
也就是說我們輸入的指令是通過shell這個命令行解釋器與操作系統溝通的。而常看到的bash是shell的一種。

用戶管理

首先要知道,我們購買的服務器后,得到的是一個root用戶,該用戶就像是規則的制定者,但其不受規則的約束,得到了root用戶就得到了整個服務器。在實際使用中是不推薦使用root用戶的,原因就是它不受權限的約束,可以肆意妄為,對整個服務器來說是十分危險的。

添加用戶

Linux下有兩種用戶:超級用戶(root)、普通用戶。超級用戶只有一個,而普通用戶可以有很多。并且普通用戶只能由超級用戶root創建。
方法:

  1. adduser 用戶名
  2. passwd 用戶名
    創建用戶

刪除用戶

刪除用戶

  • 刪除時記得帶-r選項

以上刪除和添加用戶都會在home目錄下操作,無需指定目錄或進入某一路徑進行以上操作。

sudo

普通用戶是有很多權限約束的,在一些情況下需要短暫使用root權限,這時候就可以使用sudo進行提權,即普通用戶使用root的權限進行操作。

語法: sudo?指令
功能: 提升當前指令的權限

sudo配置方法:
在這里插入圖片描述

文件路徑:

vim /etc/sudoers

vim配置
vim

Linux權限的概念

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

  • 超級用戶:可以再linux系統下做任何事情,不受限制
  • 普通用戶:在linux下做有限的事情。
  • 超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。

命令:su [用戶名]
功能:切換用戶。
例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用 suroot(root可以省略,root只有一個),此時系統會提示輸入root用戶的口令。

  • 選項 - :重新登陸。
    su

Linux權限管理

文件訪問者的分類(人)

  • 文件和文件目錄的所有者:u—User
  • 文件和文件目錄的所有者所在的組的用戶:g—Group
  • 其它用戶:o—Others

文件類型和訪問權限(事物屬性)

文件的屬性可以用ll指令查看,如下:

權限演示
文件權限

  • 對于文件訪問者而言,只列出了擁有者u,所屬組g,其他用戶o不進行顯示,對于訪問者而言不是前面兩個u,g,就是其他用戶o。
  • 文件權限三三一組,分別為:u,g,o的權限。

文件類型:

  • d:文件夾
  • -:普通文件
  • l:軟鏈接(類似Windows的快捷方式)
  • b:塊設備文件(例如硬盤、光驅等)
  • p:管道文件
  • c:字符設備文件(例如屏幕等串口設備)
  • s:套接口文件

基本權限:

  • 讀(r):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限。
  • 寫(w):Write對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限。
  • 執行(x):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限。
  • “-”表示不具有該項權限。

文件權限值的表示方法

字符表示:

Linux表示說明Linux表示說明
r–只讀-w-僅可寫
–x僅可執行rw-可讀可寫
-wx可寫和可執行r-x可讀可執行
rwx可讀可寫可執行無權限

8進制數:

權限符號八進制二進制
r4100
w2010
x1001
rw6110
rx5101
wx3011
rwx7111
0000

文件訪問權限的相關設置方法

chmod:
功能:設置文件的訪問權限
格式:chmod [參數] 權限 文件名
常用選項:

  • -R : 遞歸修改目錄文件的權限

注意:只有文件的擁有者和root才可以改變文件的權限
格式:

  • +:向權限范圍增加權限代號所表示的權限
  • -:向權限范圍取消權限代號所表示的權限
  • =:向權限范圍賦予權限代號所表示的權限

用戶符號:

  • u:擁有者
  • g:擁有者同組用
  • o:其它用戶
  • a:所有用戶

將目錄dir擁有者的權限rwx改為—

chmod
八進制格式:
八進制chmod

chown
功能:修改文件的擁有者
格式:chown [參數] 用戶名 文件名
常用選項: -R 遞歸修改目錄文件的擁有者。
chown
更改擁有者是需要使用使用sudo進行提權的;就像實際中別人給你東西,你是有拒絕的權力的,但提權后就是root權限,不接受也得接受。

chgrp
功能:修改文件或目錄的所屬組
格式:chgrp [參數] 用戶組名 文件名
常用選項:-R 遞歸修改文件或目錄的所屬組
chgrp
同樣需要root權限。

umask
以下均為八進制表示
功能:查看或修改文件掩碼
新建文件夾默認權限=0666 ,新建目錄默認權限=0777
但實際上你所創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建文件或目錄的時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的文件權限是: mask & ~umask
umask
可以按自己要求設置新建文件,目錄的權限;改動需謹慎,默認值為:0002。

格式:umask 權限值
說明:將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為0022,普通用戶默認為0002。(忽略第一個0,看后三位)

以普通用戶為例:
~umask

目錄的權限

可執行權限(x): 如果目錄沒有可執行權限, 則無法cd到目錄中。
可讀權限(r): 如果目錄沒有可讀權限, 則無法用ls等命令查看目錄中的文件內容。
可寫權限(w): 如果目錄沒有可寫權限, 則無法在目錄中創建文件, 也無法在目錄中刪除文件。

按照以上說法就會發現一個問題:只要用戶具有目錄的寫權限, 用戶就可以刪除目錄中的文件, 而不論這個用戶是否有這個文件的寫權限。
粘貼位
以上情況由于上面umask的原因一般不會出現,但是當多人需要一起協作時,就會出現以上場景。
如兩個普通用戶在同一臺服務器中需要創建一個共享目錄進行協作辦公(也就是該目錄對其他人o有rwx權限)。

在根目錄/下建一個shared的目錄作為共享目錄,并把其o+w權限。
shared
共享文件示例
shared演示
這樣看起來也太不合理了,既不是root權限,也不是文件的擁有者,還能直接刪除該文件。所以為了解決這種情況,引入了粘滯位

從這里再次看出一個文件能否被刪除取決于該文件所在目錄對應訪問者是否有w權限。

粘滯位

當一個目錄被設置為"粘滯位"(用chmod +t),則該目錄下的文件只能由

  • 超級管理員刪除
  • 該文件的所有者刪除
  • 該目錄的所有者刪除

粘滯位

  • 目錄被設置為"粘滯位"的其他權限中的x會變為t。
  • 在根目錄下是有系統默認的”共享文件“tmp。

tmp

  • t是一種特殊的x。

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

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

相關文章

備考AMC8和AMC10競賽,吃透2000-2024年1850道真題和解析(持續)

多做真題,吃透真題和背后的知識點是備考AMC8、AMC10有效的方法之一,通過做真題,可以幫助孩子找到真實競賽的感覺,而且更加貼近比賽的內容,可以通過真題查漏補缺,更有針對性的補齊知識的短板。 今天我們繼續…

PostgreSQL基本使用Schema

參考文章:PostgreSQL基本使用(3)Schema_pg數據庫查詢schema-CSDN博客 PostgreSQL 模式(Schema)可以理解為是一個表的集合(或者所屬者)。 例如:在 MySQL 中,Scheam 是庫&…

gcc源碼分析(AST抽象語法樹)

文章目錄 三、AST相關1、AST(抽象語法樹)1.1 樹結點的聲明1.2 樹結點的結構1.2.1 tree_node聯合體1.2.2 tree_base結構體1.2.3 tree_common結構體1.2.4 常量結構體1.2.5 **標識符節點**2、符號綁定,作用域與block樹節點2.1 lang_identifier結構體2.2 c_binding結構體2.3 scop…

HLS視頻加密,讓您的視頻內容更安全!

背景介紹 HLS視頻加密是一種基于HTTP Live Streaming(HLS)協議的加密技術。它的核心思想是將視頻切片進行加密處理,在客戶端播放時需要先獲取解密密鑰才能正常偶發。通過這種方式,HLS加密可以有效防止未經授權的第三方竊取視頻內…

測試短信推薦參考

短信測試參考 國外: smstome 支持多個國家號碼 官網地址: https://smstome.com/ quackr.io 支持多個國家號碼 官網地址: https://quackr.io/ receive-smss 支持多個國家號碼 地址: https://receive-smss.com/ receive-sms-fr…

C#字典的常用方法

C#的字典(Dictionary)類是一個通用的集合類,它實現了鍵值對的存儲和訪問。以下是一些常用的字典方法: Add(key, value):向字典中添加一個指定的鍵值對。Remove(key):從字典中移除具有指定鍵的元素。Contai…

LLM大模型的7種推理框架分析

LLM的7種推理框架 Hugging Face的transformers 這是一個Python庫,可以簡化本地運行LLM的過程。 Transformers的優點: 自動模型下載提供代碼片段非常適合實驗和學習 Transformers的缺點: 需要對ML和NLP有深入了解需要編碼和配置技能 2.L…

深度學習之基于Tensorflow低光增強的深層Retinex分解

歡迎大家點贊、收藏、關注、評論啦 ,由于篇幅有限,只展示了部分核心代碼。 文章目錄 一項目簡介 二、功能三、系統四. 總結 一項目簡介 一、項目背景與意義 在圖像處理領域,低光照環境下的圖像增強是一個具有挑戰性的問題。為了提高圖像的可…

紐曼新品X1000:輕巧便攜僅重9.9公斤的1度電應急電源

在戶外救援行動和應急設備中,電力供應的穩定性和安全性直接影響到救援工作的效率和成功率。在現代救援工作中,常見的光學聲波探測儀、通信聯絡設備、氣象檢測儀、生命探測儀、照明設備等裝備均需有持續的電力供應,才能保障救援工作的有序開展…

西門子WINCC8.0VBS腳本學習講解

WinCC VBS腳本置位/復位/取反 二進制變量 "TAG1_BOOL1" 進行置位復位取反操作 步驟:按鈕-->對象屬性-->事件-->單擊鼠標VBS動作填入代碼如下: 對二進制變量進行復位 對二進制變量進行置位 對二進制變量進行取反 VBS腳本數學運算/讀寫批處理 …

第十六講:數據在內存中的存儲

第十六講:數據在內存中的存儲 1.整數在內存中的存儲1.1存儲方式1.2大小端字節序1.3大小端字節序排序規則1.4為什么要有大小端1.5練習1.5.1練習11.5.2練習21.5.3練習31.5.4練習41.5.5練習51.5.6練習61.5.7練習7 2.浮點數在內存中的存儲2.1練習2.2浮點數的存儲2.3浮點…

如何將數據從一部手機傳輸到另一部手機[安全快速]

概括 手機之間無需使用藍牙即可傳輸文件,配合專業的文件傳輸工具更高效。本文將向您介紹幾種使用不同的數據傳輸工具快速安全地將數據從一部手機傳輸到另一部手機的方法,特別是當有大文件或大量文件時。現在,我們來看看。 需要在朋友或家人之…

Rust 賦能前端 -- 寫一個 File 轉 Img 的功能

所有耀眼的成績,都需要苦熬,熬得過,出眾;熬不過,出局 大家好,我是柒八九。一個專注于前端開發技術/Rust及AI應用知識分享的Coder 此篇文章所涉及到的技術有 Rustwasm-bindgen/js-sys/web-sysWeb WorkerWebAssemblyWebpack/Vite配置WebAssemblyOffscreenCanvas腳手架生成項…

校園二手書交易|基于SprinBoot+vue的校園二手書交易管理系統(源碼+數據庫+文檔)

校園二手書交易管理系統 目錄 基于SprinBootvue的校園二手書交易管理系統 一、前言 二、系統設計 三、系統功能設計 1系統功能模塊 2管理員功能模塊 3 賣家用戶功能模塊 4 用戶功能模塊 四、數據庫設計 五、核心代碼 六、論文參考 七、最新計算機畢設選題推薦 八…

Linux:iptables防火墻部署優化之連接轉移(目的地地址轉化)

Linux:iptables防火墻部署優化之連接轉移(目的地地址轉化) 文章目錄 Linux:iptables防火墻部署優化之連接轉移(目的地地址轉化)node1操作檢測ip情況關閉firewalld防火墻服務,并鎖定該服務開啟ip…

什么是分布式會話

分布式會話是指在分布式系統中實現用戶會話管理的一種機制。在傳統的單服務器架構中,用戶的會話數據通常存儲在單個服務器或應用服務器的內存中。然而,隨著業務的發展和用戶量的增加,單服務器架構往往無法滿足高可用性和高并發的需求&#xf…

Minio WebUploader上傳文件的高級用法之進度條顯示、文件過濾、圖片預覽、圖片壓縮

系列文章目錄 第十章 Minio WebUploader上傳文件的高級用法之進度條顯示、文件過濾、圖片預覽、圖片壓縮 Minio WebUploader上傳文件的高級用法之進度條顯示、文件過濾、圖片預覽、圖片壓縮 系列文章目錄進度條顯示文件過濾圖片預覽圖片壓縮 進度條顯示 使用進程文件上傳時&a…

基于springboot+html的二手交易平臺(附源碼)

基于springboothtml的二手交易平臺 介紹部分界面截圖如下聯系我 介紹 本系統是基于springboothtml的二手交易平臺,數據庫為mysql,可用于畢設或學習,附數據庫 部分界面截圖如下 聯系我 VX:Zzllh_

java Iterable和 Iterator接口區別和聯系

Iterable 和 Iterator 是 Java 集合框架中用于遍歷集合元素的兩個接口,它們之間既有區別也有聯系。下面詳細介紹它們的區別和聯系。 Iterable 接口 定義 Iterable 接口位于 java.lang 包中,定義如下: public interface Iterable<T> {Iterator<T> iterator()…

在家庭影院音頻中應用的D類音頻放大器

家庭影院的主要組成部分包括顯示設備、音響設備、信號源和接線設備等。家庭影院的音響信號需要進行處理和輸出&#xff0c;以獲得高質量的音效。音響設備通常需要一臺功率適當的數字、模擬混合的處理器&#xff0c;對音源進行降噪、均衡、擴展等處理操作&#xff0c;以達到高品…