Linux—許可權管理

来源:https://www.cnblogs.com/Alone-8712/archive/2022/08/17/16522942.html
-Advertisement-
Play Games

Linux 許可權管理 1、許可權簡介 Linux許可權是操作系統用來限制對資源訪問的機制,許可權一般分為讀、寫、執行。系統中每個文件都擁有特定的許可權:屬主、屬組以及其他人,通過這樣的機制來限制哪些用戶或用戶組可以對特定文件進行相應的操作。 1.1 許可權分類 許可權針對文件的三類對象: | 全拼 | 翻譯 | ...


Linux 許可權管理

1、許可權簡介

Linux許可權是操作系統用來限制對資源訪問的機制,許可權一般分為讀、寫、執行。系統中每個文件都擁有特定的許可權:屬主、屬組以及其他人,通過這樣的機制來限制哪些用戶或用戶組可以對特定文件進行相應的操作。

1.1 許可權分類

  • 許可權針對文件的三類對象:
全拼 翻譯 簡寫
owner 屬主 u
group 屬組 g
other 其它人 o
  • 許可權的分類:
許可權 對文件的影響 對目錄的影響
r(讀取) 可讀取文件內容 可列出目錄中內容
w(寫入) 可修改文件內容 可在目錄中創建刪除內容
x(執行) 可作為命令執行 可訪問目錄內容

註意:目錄必須擁有 x 許可權,否則無法查看其內容

  • 許可權的表示方式:
第一種 第二種
- - - 0
- - x 1
- w - 2
- w x 3
r - - 4
r - x 5
r w - 6
r w x 7

1.2 Linux安全上下文

Linux每個進程都是以某個用戶身份運行,進程的許可權與該用戶的許可權一樣,運行該進程的用戶的許可權越大,則進程擁有的許可權就越大。

文件有屬主和屬組,進程有屬主和屬組

  • 任何一個可執行程式文件能不能啟動為進程,取決於發起者對程式文件是否擁有可執行許可權
  • 啟動為進程後,其進程的屬主為發起者,屬組為發起者的基本組
  • 進程訪問文件時的許可權取決於進程的發起者:
    • 進程的發起者是文件的屬主時,則應用文件屬主許可權
    • 進程的發起者是文件的屬組時,則應用文件屬組許可權
    • 應用文件“其它”許可權

2、許可權管理命令

2.1 許可權修改命令chmod

//許可權修改主要修改三類對象的許可權

//語法:chmod MODE file,...
    -R      //遞歸修改許可權

//修改某類對象許可權:u,g,o,a

許可權修改的三種方式:
chmod 對象類別=MODE file,.....
chmod 對象類別=MODE,對象類別=MODE file,.....
例如:
[root@zsl ~]# chmod u=rwx zsl 
[root@zsl ~]# chmod u=rwx,g=rwx zsl 

chmod 對象類別+|-MODE file,.....
chmod 對象類別+|-MODE,對象類別+|-MODE file,.....
chmod +|-MODE file,.....
例如:
[root@zsl ~]# chmod u+rwx zsl 
[root@zsl ~]# chmod u-x,g-x zsl
[root@zsl ~]# chmod +x zsl

chmod "mode number" file,.....
例如:
[root@zsl ~]# chmod 777 zsl

2.2 屬主和屬組修改命令chown

//chown命令只有管理員可以使用。

chown USERNAME file,...
    -R      //修改目錄及其內部文件的屬主

chown USERNAME:GROUPNAME file,...
chown USERNAME.GROUPNAME file,...
例如:
[root@zsl ~]# chown root.root zsl 
[root@zsl ~]# chown root:root zsl 

2.3 特殊許可權

linux的許可權預設是根據linux安全上下文的方式來控制的,而特殊許可權的存在打破了linux安全上下文的規則。

SUID(4)     //運行程式時,這個程式啟動的進程的屬主是程式文件自身的屬主,而不是發起者為屬主
    chmod u+s file
    chmod u-s file
    //如果file本身原來就有執行許可權,則SUID顯示為s,否則顯示為S
    
SGID(2)     //運行程式時,這個程式啟動的進程的屬組是程式文件自身的屬組,而不是啟動者所屬的基本組
            //一旦某目錄被設定了SGID,則對此目錄有寫許可權的用戶在此目錄中創建的文件或目錄,其所屬的組為此設定了SGID的目錄的屬組
    chmod g+s DIR
    chmod g-s DIR
    //如果file本身原來就有執行許可權,則SGID顯示為s,否則顯示為S
    
SBIT(1)	    //公共目錄,每個人都能創建文件,刪除自己的文件,但是不能刪除別人創建的文件
    chmod o+t DIR
    chmod o-t DIR
    //如果DIR本身原來就有執行許可權,則SBIT顯示為t,否則顯示為T

特殊許可權的數字表示方式:
4755    //有SUID,文件許可權為755
2755    //有SGID,文件許可權為755
1755    //有Sticky,文件許可權為755
//這裡前面的4、2、1分別表示SUID、SGID、Sticky

2.4 文件系統訪問控制列表facl

facl(Filesystem Access Control List),利用文件擴展保存額外的訪問控制許可權。

//語法:setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
    -m      //設定許可權條目
        u:UID:perm
        g:GID:perm
    示例:
       setfacl -m u:test:rw file
       setfacl -m g:test:rw file

//如果要為某個目錄設定預設的訪問控制列表,只需要設定時在u或g前面加上d即可
    示例:
       setfacl -m d:u:test:rw file
//此時在此目錄中創建的文件均繼承此訪問控制列表所設置的許可權

    -x      //刪除許可權條目
        u:UID
        g:GID
    示例:
       setfacl -x u:test file
       setfacl -x g:test file

    -b      //Remove all
    示例:
       setfacl -b file

//查看文件系統訪問控制列表getfacl
//語法:getfacl [-aceEsRLPtpndvh] file ...
    示例:
       getfacl file

2.5 遮罩碼

為什麼文件創建以後預設許可權是644?
為什麼目錄創建以後預設許可權是755?

新建文件和新建目錄的預設許可權是由遮罩碼umask來控制的。

從名字就能看出來,遮罩碼umask是用來隱藏一些許可權的。

舉例:如果你不想讓人家認出你,你會怎麼辦?

文件最終的許可權為:

666-umask	文件最高許可權 - 遮罩碼 = 文件最終許可權

目錄最終的許可權為:

777-umask	目錄最高許可權 - 遮罩碼 = 目錄最終許可權

文件預設是不能具有執行許可權的,如果文件有了執行許可權則將其許可權整體加1。

3、sudo借權

sudo可以實現某個用戶能夠以另外哪一個用戶的身份通過哪些主機執行什麼命令

sudo的配置文件:/etc/sudoers

//使用visudo命令進行sudo的配置,每一行就是一個sudo條目,條目格式如下:

示例:
	who which_hosts=(runas) command

who : User,User_Alias			//表示運行命令者的身份
which_hosts : Host,Host_Alias		//通過哪些主機
runas : User,Runas_Alias		//以哪個用戶的身份
command : Command,Cmnd_Alias		//運行哪些命令

//別名必須全部而且只能使用大寫英文字母的組合,可以使用感嘆號取反

//別名分類
1.用戶別名:
User_Alias "Alias" =
	用戶的用戶名
	組名,使用%引導
	還可以其它已經定義的用戶別名

2.主機別名:
Host_Alias "Alias" =
	主機名
	IP地址
	網路地址
	其它主機別名

3.命令別名:
Cmnd_Alias =
	命令路徑
	目錄(此目錄內的所有命令)
	其它已定義的命令別名

//sudo命令語法:sudo [options] COMMAND
    -V      //顯示版本編號
    -h      //幫助信息,會顯示版本編號及指令的使用方式說明
    -l      //列出當前用戶可以使用的所有sudo類命令
    -v      //重新做一次密碼確認,如果超過N(預設為5)分鐘,也會問密碼
    -k      //立刻清除認證信息,如果不指定-k,預設認證信息在5分鐘後失效
    -b      //將要執行的指令放在後臺執行
    -u USERNAME     //以指定的用戶名執行命令,預設為root

4、文件特殊屬性命令

chattr命令用於改變文件的特殊屬性。與chmod命令相比,chmod只是改變文件的讀寫、執行許可權,而chattr是基於內核的更底層的屬性控制。

命令格式:
	chattr [選項] [+/-/=屬性] [文件或目錄]

選項:
	-R	//遞歸
	-V	//顯示過程

模式:
	+	//用於增加屬性
	-	//用戶刪除屬性
	=	//用於指定屬性
	A	//告訴系統不要修改該文件的最後訪問時間
	a	//只能向文件追加數據,不能刪除
	i	//設定文件不能被刪除,改名,寫入或新增內容

示例:
[root@hzz ~]# chattr +a hzz.txt		//為hzz.txt增加a屬性

[root@hzz ~]# lsattr hzz.txt		//查看文件特殊屬性 
-----a-------e-- hzz.txt

5、擴展命令

sleep   //睡眠

//寫腳本時為防止上一個命令沒執行完下一命令就開始執行時可以sleep命令
//語法:sleep NUMBER[SUFFIX]...
        SUFFIX:
            s:秒,預設
            m:分
            h:小時
            d:天
示例:
	sleep 5     //表示睡眠5秒後再執行後面的命令 

last    //顯示/var/log/wtmp文件內容,用戶登錄歷史及系統重啟歷史                
      -n #        //顯示最近#次的相關信息

lastb   //顯示/var/log/btmp文件內容,用戶錯誤的登錄嘗試                
      -n #        //顯示最近#次的相關信息

lastlog //顯示每個用戶最近一次成功登錄信息                
      -u username     //顯示特定用戶最近的登錄信息

basename        //顯示路徑基名  


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ClickHouse應用場景 ClickHouse 是俄羅斯的 Yandex 於 2016 年開源的用於線上分析處理查詢(OLAP :Online Analytical Processing)MPP架構的列式存儲資料庫(DBMS:Database Management System),能夠使用 SQ ...
  • 往往原有的標題欄無法滿足需求,此時就需要進行自定義標題欄。 重新定義Window的Template 首先,需修改WindowChrome的幾個屬性 CaptionHeight屬性值就是自定義標題欄的高,若值低於自定義窗體模板中的標題部分的高,可能或導致,滑鼠點擊標題欄無法拖動,因為滑鼠此時可能不在C ...
  • Q1:關於“標簽PDF文件(Tagged PDF)” 標簽PDF文件包含描述文檔結構和各種文檔元素順序的元數據,是一種包含後端提供的可訪問標記,管理閱讀順序和文檔內容表示的邏輯結構的PDF文件[1]。 Q2:關於“標簽(Tag)” PDF標簽是通過屏幕閱讀器等支持技術訪問PDF文檔內容的關鍵。PDF ...
  • 一:背景 前幾篇我們聊的都是 非托管記憶體泄漏,這一篇我們再看下如何用 PerfView 來排查 托管記憶體泄漏 ,其實 托管記憶體泄漏 比較好排查,尤其是用 WinDbg,畢竟C#是帶有豐富的元數據,不像C++下去就是二進位。 二:如何分析 PerfView 用的是權重占比來尋找可疑的問題函數,為了方便 ...
  • 1.印度BEE認證更新彩電能效標簽有效期,將於6月30日失效 2022年6月7日,印度能源效率局BEE公佈現行彩電能效標准將於2022年6月30日失效,而新標准將於2022年7月1日施行。 現存型號的舊標簽到期自動作廢,BEE網站現已啟動接受電視機的新能效申請,貼新能效標簽的電視機產品只允許在202 ...
  • Wondershare Filmora for Mac是一個易於使用的視頻編輯器,wondershare filmora mac版具有強大的功能和豐富的功能,使用wondershare filmora mac軟體,可以讓你製作出高質量的視頻,通過使用Filmora你會很容易地創建從視頻文件,音頻文件 ...
  • 1.以色列開放Wi-Fi 6E 2022 年 7 月 7 日,以色列通信部(MoC)發佈了《無線電報條例(合規證書)》的修正案,宣佈允許使用 5945-6425 MHz 頻段(Wi-Fi 6E),技術要求如下:頻段:5945 - 6425 MHz射頻輸出功率:200 mW e.i.r.p.使用地點: ...
  • 在無根環境中的基本設置和使用Podman 在允許沒有root許可權的用戶運行Podman之前,管理員必須安裝或構建Podman並完成以下配置。 cgroup V2Linux內核功能允許用戶限制普通用戶容器可以使用的資源,如果使用cgroupV2啟用了運行Podman的Linux發行版,則可能需要更改默 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...