復習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解析給用戶。

Linux系統下的權限

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

  • 超級用戶:可以再linux系統下做任何事情,不受限制
  • 普通用戶:在linux下做有限的事情。

超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”。
命令:su [用戶名]
功能:切換用戶。
例如,要從root用戶切換到普通用戶user,則使用 su user。 要從普通用戶user切換到root用戶則使用 su root(root可以省略),此時系統會提示輸入root用戶的口令。

Linux權限管理

文件訪問者的分類

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

文件類型和訪問權限

在這里插入圖片描述
第一組:rwx表示文件的擁有者的權限
第二組rwx表示的是文件擁有者同組的用戶的權限
第三組rwx表示的是其他用戶的權限

在Linux其實還有一個特殊用戶,凌駕于權限體系之上root

文件類型
  • d:文件夾
  • -:普通文件
  • l:軟鏈接(類似Windows的快捷方式)
  • b:塊設備文件(例如硬盤、光驅等)
  • p:管道文件
  • c:字符設備文件(例如屏幕等串口設備)
  • s:套接口文件
基本權限
  1. 讀(r/4):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限
  2. 寫(w/2):Write對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限
  3. 執行(x/1):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限
  4. “—”表示不具有該項權限

文件權限值

  • 字符表示
Linux表示說明
r–只讀
–x僅可執行
-wx可寫可執行
rwx可讀可寫可執行
-w-僅可寫
rw-可讀可寫
r-x可讀可寫可執行
無權限
  • 8進制數值表示
權限符號八進制
r4
w2
x1
rw6
rx5
wx3
rwx7
0

設置和修改權限

chmod

功能:設置文件的訪問權限
格式:chmod [參數] 權限 文件名
常用選項
R -> 遞歸修改目錄文件的權限
說明:只有文件的擁有者和root才可以改變文件的權限
chmod命令權限值的格式

  1. 用戶表示符+/-=權限字符
    • +:向權限范圍增加權限代號所表示的權限
    • -:向權限范圍取消權限代號所表示的權限
    • =:向權限范圍賦予權限代號所表示的權限
    • 用戶符號:
    • u:擁有者
    • g:擁有者同組用
    • o:其它用戶
    • a:所有用戶
chmod a=x /home/abc.txt
  1. 三位8進制數
    chmod[三位八進制數字數字]修改權限
    所謂的執行條件,但是不是充要條件
    必須得文件滿足系統可執行得格式要求才是真的能執行,平時敲得得大部分指令,都是可執行程序。
chmod 664 /home/abc.txt
whereis

能夠找到某個指令對應的可執行程序路徑

chown

功能:修改文件的擁有者
格式:chown [參數] 用戶名 文件名

chown -R user1 filegroup1
chgrp

功能:修改文件或目錄的所屬組
格式:chgrp [參數] 用戶組名 文件名
常用選項:-R 遞歸修改文件或目錄的所屬組

chgrp users /abc/f2
umask

功能

  • 查看或修改文件掩碼
  • 新建文件夾默認權限=0666
  • 新建目錄默認權限=0777
  • 但實際上你所創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建文件或目錄的時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的文件權限是: mask & ~umask
    格式:umask 權限值
    說明:將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為0022,普通用戶默認為0002。
umask 755
file指令:

功能說明:辨識文件類型。
語法:file [選項] 文件或目錄…
常用選項

  • -c 詳細顯示指令執行過程,便于排錯或分析程序執行的情形。
  • -z 嘗試去解讀壓縮文件的內容。

目錄的權限

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

問題
只要用戶具有目錄的寫權限, 用戶就可以刪除目錄中的文件, 而不論這個用戶是否有這個文件的寫權限.
這是不科學的,比如A和B都在一個目錄下寫文件,A寫的文件B每權限訪問,但是B擁有整個目錄的寫權限,那么B就可以改A的文件,這是不合理的
解決方法:粘滯位

粘滯位

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

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

總結

  • 目錄的可執行權限是表示你可否在目錄下執行命令。
  • 如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd 進入目, 即使目錄仍然有-r 讀權限
  • 而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄。但由于沒有目錄的讀權限,所以在目錄下,即使可以執行ls命令,但仍然沒有權限讀出目錄下的文檔。

對于普通文件來說

  1. 讀意味著能夠查看到文件內容
  2. 寫意味著能夠修改文件內容
  3. 執行意味著能夠運行程序

對于目錄文件

  • 讀意味著能夠修改目錄中包含哪些文件和目錄
  • 寫意味著能夠修改目錄中包含的內容(新增文件/刪除文件)
  • 執行意味著能夠進入到目錄中(cd)

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

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

相關文章

【劍指offer】_01 (二維數組中的查找)

題目描述 在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該…

【劍指offer】_02替換空格

題目描述 請實現一個函數,將一個字符串中的每個空格替換成“%20”。例如,當字符串為We Are Happy.則經過替換之后的字符串為We%20Are%20Happy。 解題思路 首先我們先算出整個字符串的長度,還有總共多少個空格。因為空格只占一個字節&#…

【劍指offer】_04 重建二叉樹

題目描述 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。例如輸入前序遍歷序列{1,2,4,7,3,5,6,8}和中序遍歷序列{4,7,2,1,5,3,8,6},則重建二叉樹并返回。 解題思路 用前序的順序…

再談c++中的多態

何為多態 多態的概念:通俗來說,就是多種形態,具體點就是去完成某個行為,當不同的對象去完成時會產生出不同的狀態。 多態的實現 在繼承的體系下 基類中必須有虛函數(被virtual關鍵字修飾的成員函數),在派生類中必須…

再談c++中的繼承

繼承的概念 繼承(inheritance)機制是面向對象程序設計使代碼可以復用的最重要的手段,它允許程序員在保持原有類特性的基礎上進行擴展,增加功能,這樣產生新的類,稱派生類。繼承呈現了面向對象程序設計的層次結構,體現了…

紅黑樹概念及其相關操作的實現

紅黑樹的概念 紅黑樹,是一種二叉搜索樹,但它并不像AVL樹一樣,每個結點綁定一個平衡因子。但在每個結點上增加一個存儲位表示結點的顏色,可以是Red或Black。 通過 對任何一條從根到葉子的路徑上各個結點著色方式的限制&#xff0c…

模擬實現STL中map和set容器

紅黑樹的迭代器 //紅黑樹的迭代器 template<class T> struct RBTreeIterator {typedef RBTreeNode<T>Node;typedef RBTreeIterator<T> Self; public:RBTreeIterator(Node* pNode nullptr):_pNode(pNode){}//具有指針操作T& operator*(){return _pNode-…

【劍指offer】_05 連續子數組最大和

題目描述 HZ偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會后,他又發話了:在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,并期望旁邊的正數會彌補它呢&#…

排序上---(排序概念,常見排序算法,直接插入,希爾排序,直接選擇排序,堆排序)

排序的概念 排序&#xff1a;所謂排序&#xff0c;就是使一串記錄&#xff0c;按照其中的某個或某些關鍵字的大小&#xff0c;遞增或遞減的排列起來的操作。穩定性&#xff1a;假定在待排序的記錄序列中&#xff0c;存在多個具有相同的關鍵字的記錄&#xff0c;若經過排序&…

排序下---(冒泡排序,快速排序,快速排序優化,快速排序非遞歸,歸并排序,計數排序)

排序上 排序上 交換類排序 基本思想&#xff1a;所謂交換&#xff0c;就是根據序列中兩個記錄鍵值的比較結果來對換這兩個記錄在序列中的位置&#xff0c;交換排序的特點是&#xff1a;將鍵值較大的記錄向序列的尾部移動&#xff0c;鍵值較小的記錄向序列的前部移動。 冒泡…

哈希的概念及其操作

哈希概念 順序結構以及平衡樹中&#xff0c;元素關鍵碼與其存儲位置之間沒有對應的關系&#xff0c;因此在查找一個元素時&#xff0c;必須要經過關鍵碼的多次比較。順序查找時間復雜度為O(N)&#xff0c;平衡樹中為樹的高度&#xff0c;即O( Log2N)&#xff0c;搜索的效率取決…

軟件工程---1.概述

軟件的特征 抽象&#xff1a; 不可觸摸&#xff0c;邏輯實體&#xff0c;可記錄&#xff0c;但看不到復制成本低&#xff1a;不受物質材料的限制&#xff0c;不受物理定律或加工過程的制約&#xff0c;與開發成本相比&#xff0c;復制成本很低無折舊、受硬件制約、未完全擺脫手…

軟件工程---2.軟件過程

三個模型 瀑布模型增量模型集成和配置模型 沒有適用于所有不同類型軟件開發的過程模型。 瀑布模型 需求定義系統和軟件的設計實現與單元測試集成與系統測試運行與維護 瀑布模型的特征 從上一項活動中接受該項活動的工作成果&#xff08;工作產品&#xff09;&#xff0c;作…

軟件工程---3.敏捷軟件開發

敏捷軟件開發 極限編程&#xff08;XP&#xff0c; Beck1999&#xff09;Scrum方法&#xff08;Schwaber and Beedle 2001&#xff09;DSDM方法&#xff08;Stapleton 2003&#xff09; 敏捷軟件的開發宣言 個體和交互勝過過程和工具可以工作的軟件勝過面面俱到的文檔客戶合…

軟件工程---4.需求工程

需求工程定義 找出、分析、文檔化并且檢查需求的過程被稱為需求工程 需求的兩個描述層次 用戶需求&#xff0c;指高層的抽象需求。使用自然語言、圖形描述需求。系統需求&#xff0c;指底層的詳細需求。使用系統需求文檔&#xff08;有時被稱為功能規格說明&#xff09;應該…

軟件工程---5.系統建模

從不同視角對系統建模 外部視角&#xff0c;上下文模型&#xff0c;對系統上下文或環境建模交互視角&#xff0c;交互模型&#xff08;功能模型&#xff09;&#xff0c;對系統與參與者或系統內構件之間的交互建模結構視角&#xff0c;結構模型&#xff08;靜態模型&#xff0…

軟件工程---6.體系結構設計

體系結構模型是什么&#xff1f; 體系結構模型&#xff0c;該模型描述系統如何被組織為一組相互通信的構件 體系結構分類 小體系結構關注單個程序的體系結構。在這個層次上&#xff0c;我們關注單個的程序是如何補分解為構件的。大體系結構關注包括其他系統、程序和程序構件…

【劍指offer】_06 變態跳臺階

題目描述 一只青蛙一次可以跳上1級臺階&#xff0c;也可以跳上2級……它也可以跳上n級。求該青蛙跳上一個n級的臺階總共有多少種跳法。 解題思路 鏈接&#xff1a;https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387 關于本題&#xff0c;前提是…

【劍指offer】_07 矩形覆蓋

題目描述 我們可以用21的小矩形橫著或者豎著去覆蓋更大的矩形。請問用n個21的小矩形無重疊地覆蓋一個2*n的大矩形&#xff0c;總共有多少種方法&#xff1f; 解題思路 依舊是斐波那契數列 2n的大矩形&#xff0c;和n個21的小矩形 其中target*2為大矩陣的大小 有以下幾種情形…

軟件工程---07.設計與實現

軟件設計和軟件實現 軟件設計是一個創造性的活動&#xff0c;在此活動中需要基于客戶需求識別軟件構件及其關系。軟件實現是將設計實現為一個程序的過程 為開發一個系統設計&#xff0c;你需要 理解并定義上下文模型以及系統的外部交互設計系統體系結構識別系統中的主要對象…