Linux 入門:權限的認識和學習

目錄

一.shell命令以及運行原理

二.Linux權限的概念

1.Linux下兩種用戶

cannot open directory '.': Permission denied 問題

2.Linux權限管理

1).是什么

2).為什么(權限=角色+目標權限屬性)

3).文件訪問者的分類(角色)

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

5).怎么做

(1)chmod (設置文件的訪問權限)

(2)用戶只能更改自己的文件權限

(3)沒有權限系統會拒絕訪問

(4)確定權限信息的時候,系統會先確定用戶是誰?擁有者,所屬組還是other

(5)root不受權限約束

?(6)chown(修改文件的擁有者)

(7)umask(查看或修改文件掩碼)

6).目錄的權限

(1)粘滯位

三.關于權限的總結


一.shell命令以及運行原理


Linux嚴格意義上說的是?個操作系統,我們稱之為“核心(kernel)“ ,但我們?般用戶,不能直接使?kernel。而是通過kernel的“外殼”程序,也就是所謂的shell,來與kernel溝通。如何理解?為什么不能直接使用kernel?
從技術角度,Shell的最簡單定義:命令行解釋器(command Interpreter)主要包含:

? 將使用者的命令翻譯給核心(kernel)處理。

? 同時,將核心的處理結果翻譯給使用者

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

二.Linux權限的概念


1.Linux下兩種用戶

超級用戶(root)、普通用戶

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

命令:su [用戶名]

功能:切換用戶。

例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用?su root(root可以省略),此時系統會提示輸?root用戶的口令。


cannot open directory '.': Permission denied 問題

若切換用戶出現?cannot open directory '.': Permission denied的情況

命令:? ? su? ?-l? ? 用戶名

?若沒有設置普通用戶密碼切換root賬號設置一下

命令:? ? ?passwd? 用戶名?

2.Linux權限管理

1).是什么

權限本質是能或者不能做什么事

2).為什么(權限=角色+目標權限屬性)

  • 控制用戶的行為,防止錯誤發生
  • 權限首先限制的是角色
  • 權限要求目標必須具備對應的屬性(比如:我不能在LeetCode上看電影)

3).文件訪問者的分類(角色)

?? 文件和文件目錄的所有者:u---User(中國平民 法律問題)

? 文件和文件目錄的所有者所在的組的用戶,所屬組:g---Group(不多說)

? 其它用戶other:o---Others (外國人)

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

文件類型:

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

基本權限:

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

5).怎么做

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

(1)chmod (設置文件的訪問權限)

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

格式:chmod [參數] 權限 文件名

常用選項:

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

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

chmod命令權限值的格式:

  • 用戶表?符+/-=權限字符
  • + :向權限范圍增加權限代號所表示的權限
  • -? :向權限范圍取消權限代號所表示的權限
  • = :向權限范圍賦予權限代號所表示的權限

用戶符號:

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

(2)用戶只能更改自己的文件權限

(3)沒有權限系統會拒絕訪問

(4)確定權限信息的時候,系統會先確定用戶是誰?擁有者,所屬組還是other

用戶角色只確定一次,順序是擁有者,所屬組,other

(5)root不受權限約束

?(6)chown(修改文件的擁有者)

功能:修改?件的擁有者

格式:chown [參數] 用戶名 文件名

(7)umask(查看或修改文件掩碼)

功能:

  • 查看或修改文件掩碼
  • 新建文件夾默認權限=0666
  • 新建目錄默認權限=0777
  • 但實際上你所創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建?件或目錄的時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的?件權限是: mask &(~umask)

格式:umask 權限值

說明:將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為0022,普通用戶默認為0002。

  • 默認權限,有OS自主決定,無法在創建前進行修改----系統可配置,可以靈活滿足需要的一種表現
  • 特殊情況下,配置umask,可以控制文件的默認權限,讓我們的代碼是可控的

6).目錄的權限

可執行權限x,可讀權限r,可寫權限w

可執行權限x: 如果目錄沒有可權限, 則無法cd到目錄中.

可讀權限r: 如果目錄沒有可讀權限, 則無法用ls等命令查看目錄中的文件內容.

可寫權限w: 如果目錄沒有可寫權限, 則無法在目錄中創建文件, 也無法在目錄中刪除文件.

于是, 問題來了~~ 換句話來講, 就是只要用戶具有目錄的寫權限, 用戶就可以刪除目錄中的文件, 而不論這個用戶是否有這個文件的寫權限。

這好像不太科學啊, 我張三創建的?個文件, 憑什么被你李四可以刪掉?

一個文件是否能被刪除,與文件本身無關,與文件所處的目錄權限w有關?

(1)粘滯位

為了解決這個不科學的問題, Linux引?了粘滯位的概念

任何一個人都能在共享目錄下創建,但是不能讓非擁有者刪除

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

  1. ?超級管理員刪除
  2. ?該目錄的所有者刪除
  3. ?該文件的所有者刪除

三.關于權限的總結


  • 目錄的可執行權限是表示你可否在目錄下執行命令。
  • 如果目錄沒有 -x 權限,則無法對目錄執行任何命令,甚至無法 cd 進入目錄, 即使目錄仍然有 -r 讀權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件)
  • 而如果目錄具有 -x 權限,但沒有 -r 權限,則用戶可以執行命令,可以 cd 進入目錄。但由于沒有目錄的讀權限
  • 所以在目錄下,即使可以執行 ls 命令,但仍然沒有權限讀出目錄下的文檔

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

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

相關文章

【筆記】計算機網絡——數據鏈路層

概述 鏈路是從一個結點到相鄰結點的物理路線,數據鏈路則是在鏈路的基礎上增加了一些必要的硬件和軟件實現 數據鏈路層位于物理層和網絡層之間,它的核心任務是在直接相連的節點(如相鄰的交換機,路由器)之間提供可靠且…

ngx_url_t

定義在 src/core/ngx_inet.h typedef struct {ngx_str_t url;ngx_str_t host;ngx_str_t port_text;ngx_str_t uri;in_port_t port;in_port_t default_port;in_port_t …

搜廣推校招面經五十四

美團推薦算法 一、手撕Transformer的位置編碼 1.1. 位置編碼的作用 Transformer 模型沒有顯式的序列信息(如 RNN 的循環結構),因此需要通過位置編碼(Positional Encoding)為輸入序列中的每個位置添加位置信息。位置…

網絡爬蟲【爬蟲庫urllib】

我叫不三不四,很高興見到大家,歡迎一起學習交流和進步 今天來講一講爬蟲 urllib介紹 Urllib是Python自帶的標準庫,無須安裝,直接引用即可。 Urllib是一個收集幾個模塊來使用URL的軟件包,大致具備以下功能。 ● urlli…

LabVIEW棉花穴播器排種自動監測系統

一、項目背景與行業痛點 1. 農業需求驅動 我國棉花主產區,種植面積常年超250萬公頃,傳統人工播種存在兩大核心問題: 效率瓶頸:人均日播種面積不足0.5公頃,難以匹配規模化種植需求; 精度缺陷:人…

解決diffusers加載stablediffusion模型,輸入prompt總是報錯token數超出clip最大長度限制

1. StableDiffusion1.5 在加載huggingface中的擴散模型時,輸入prompt總是會被報錯超過clip的最大長度限制。 解決方案:使用compel庫 from diffusers import AutoPipelineForText2Image import torch import pdb from compel import Compeldevice torc…

jmeter配件元素

jmeter配件元素 CSV Data Set Config名詞解釋測試場景Recycle on EOF:False配置測試結果 Recycle on EOF:True配置測試結果 Sharing mode:All Threads配置測試結果 Sharing mode:Current thread group配置測試結果 Sharing mode:Current thread配置測試結果 HTTP Header Manage…

Navicat SqlServer 設置自增主鍵

Navicat是一款優秀的數據庫管理工具&#xff0c;可以連接很多類型的數據庫。使用它可以極大的提高工作效率。 Navicat 不能設置SqlServer自增字段&#xff0c;只能通過sql語句來實現 建表時設置 create table <表名> ( <字段1-主鍵> int identity (1,1) primar…

Elasticsearch搜索引擎 3(DSL)

Elasticsearch提供了基于JSON的DSL&#xff08;Domain Specific Language&#xff09;語句來定義查詢條件&#xff0c;其JavaAPI就是在組織DSL條件。 1.DSL查詢 葉子查詢&#xff08;Leaf query clauses&#xff09;&#xff1a;在特定的字段里查詢特定值&#xff0c;屬于簡單…

final 在 java 中有什么作用?

final 在 java 中有什么作用&#xff1f; 修飾變量 修飾基本數據類型變量&#xff1a; 當用final修飾基本數據類型變量時&#xff0c;該變量就變成了常量&#xff0c;其值在初始化后不能被改變。 final int num 10; // num 20; // 這行代碼會導致編譯錯誤&#xff0c;因…

Dubbo/Hession2序列化Immutable類型的集合異常問題

問題排查 根據堆棧信息可見&#xff0c;dubbo使用默認的hession2進行序列化時出現了異常&#xff0c;異常堆棧根原因為&#xff1a;null array 位于java.util.CollSer#readResolve方法中&#xff0c;即在序列化集合時&#xff0c;集合數組為空。 向上追溯jdk.internal.ref…

目標檢測任務,如何區分兩個相近似的目標

首先&#xff0c;要了解清楚檢測的場景下&#xff0c;肉眼能否區分出目標的差異性。 如果可以區分&#xff0c;那觀察數據周圍背景的差異是否較大&#xff0c;可以先通過添加樣本來提升模型的檢測精度。添加樣本時一定要注意&#xff0c;樣本標注的準確性&#xff0c;樣本的豐…

Java面試黃金寶典1

1. 8 種基本數據類型 整數類型 byte&#xff1a; 它是最小的整數類型&#xff0c;占用 1 個字節&#xff08;8 位&#xff09;。在一些對內存使用要求極高的場景&#xff0c;比如嵌入式系統開發、數據傳輸時對數據量有嚴格限制的情況&#xff0c;會使用 byte 類型。例如&#x…

OSGEarth

OSGEarth 基于 OpenSceneGraph 構建的一個擴展庫&#xff0c;專門用于地球科學和地理信息系統&#xff08;GIS&#xff09;數據的可視化。它允許開發者創建逼真的三維地球模型&#xff0c;并在其上展示各種地理空間數據。 高端一點的表述 基于三維引擎osg開發的三維數字地球…

Word 小黑第34套

對應大貓34 設置第二頁水印&#xff0c;取消第一頁的&#xff1a;取消第二頁頁眉鏈接&#xff0c;刪除第一張水印圖片&#xff08;delete&#xff09; 調整水印圖片&#xff1a;點開頁眉頁腳 雙擊圖片 可以調整 郵件合并 -創建標簽 橫標簽數3 豎標簽5 表布局 -查看網格線 插…

2.5.1 io_uring

文章目錄 2.5.1 io_uring1. 對比1. select、poll、epoll 對比表格2. 關鍵特性說明&#xff1a;3. 應用場景 2. 異步io1. 頻繁copy2. 如何做到線程安全 3. io_uring1. 實現2. 關鍵點&#xff1a;3. 問題1. Reactor 與 Proactor 的三點不同2. epoll 與 io_uring 的區別 2.5.1 io_…

K8S學習之基礎三十六:node-exporter部署

Prometheus v2.2.1 ? 編寫yaml文件&#xff0c;包含創建ns、configmap、deployment、service # 創建monitoring空間 vi prometheus-ns.yaml apiVersion: v1 kind: Namespace metadata:name: monitoring# 創建SA并綁定權限 kubectl create serviceaccount monitor -n monito…

為什么“連接斷開可能導致鎖未釋放”

目錄 兩種典型場景可能導致鎖未及時釋放1. **數據庫未及時檢測到連接斷開**2. **應用程序未正確處理事務** 為什么說“可能因連接斷開導致死鎖”&#xff1f;如何避免此類問題&#xff1f;總結 在大多數數據庫實現中&#xff0c;如果持有鎖的連接&#xff08;或會話&#xff09…

【實戰指南】基于DevExpress輕量化主題實現WPF應用性能升級

DevExpress WPF擁有120個控件和庫&#xff0c;將幫助您交付滿足甚至超出企業需求的高性能業務應用程序。通過DevExpress WPF能創建有著強大互動功能的XAML基礎應用程序&#xff0c;這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件…

【C++多線程】C++異步線程池提交任務的寫法和解釋

// 提交任務到線程池 template<class F, class... Args> auto ThreadPool::enqueue(F&& f, Args&&... args) -> std::future<typename std::result_of<F(Args...)>::type> {using return_type typename std::result_of<F(Args...)>…