日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

EduCoder Linux文件/目录高级管理三

發布時間:2024/5/17 linux 111 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EduCoder Linux文件/目录高级管理三 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本實訓主要講解Linux中文件/目錄的特殊權限和特殊屬性。

Linux系統中文件/目錄除了有讀(r)、寫(w)、執行(x)權限外,文件/目錄還存在特殊的權限,這些權限分別是SUID、SGID和Sticky Bit。

Linux系統中文件/目錄還存在特殊的屬性,這些特殊文件系統的安全管理方面起很重要的作用。

本實訓主要講解如何對Linux文件/目錄設置特殊的權限和特殊屬性。

## 第1關:Linux文件/目錄setuid和setgid
  • 任務描述
  • 相關知識
    • setuid
    • setgid
  • 編程要求
  • 測試說明

任務描述

假設由用戶A創建了一個可執行文件testA,此時想讓用戶B以A的身份去執行testA文件該如何實現,通過本關的學習,我們將學會解決以上問題。

本關任務:設置文件/目錄的特殊權限setuid和setgid。

相關知識

Linux中文件/目錄除了有可讀、可寫和可執行這三種權限外,還存在比較特殊的權限,這些特殊權限就包括setuid和setgid這兩種。

setuid和setgid位是讓普通用戶可以以root用戶的角色運行只有root帳號才能運行的程序或命令。例如我們用普通用戶運行passwd命令來更改自己的口令,實際上最終更改的是/etc/passwd文件,我們知道/etc/passwd文件是用戶管理的 配置文件,只有root權限的用戶才能更改,正是因為passwd命令被設置了setuid權限才能使得普通用戶也可以修改其配置文件的內容。

Linux文件/目錄權限是使用常見的八進制權限掩碼來表示的,通常都是用三位數表示,但確切地說,它是用四位數表示的,因為除了讀、寫和執行權限以外還有特殊的權限。

  • setuid的八進制表示為4000

  • setgid的八進制表示為2000

同樣setuid和setgid也可以使用字母s表示。

如果文件/目錄的擁有者的可執行位是s,則表示該文件/目錄被設置了setuid權限。同樣,如果同組用戶的可執行為是s,則表示該文件/目錄被設置了setgid權限。

接下讓我們詳細的學習setuid和setgid的使用方法。

setuid

setuid的作用是讓執行該命令的用戶以該命令擁有者的權限去執行。

例如:普通用戶執行passwd時會擁有root的權限,這樣就可以修改/etc/passwd這個文件,正是因為passwd命令被設置了setuid權限,passwd命令的詳細權限如下所示:

可以看到passwd命令的擁有者的可執行位是s,則說明passwd命令被設置了setuid權限。

設置setuid命令有兩種方法,一種是數字設置,另一種是通過助記語法。(建議使用助記語法設置)

  • 數字設置命令:chmod 4xxx 文件/目錄

其中xxx表示文件/目錄的所有者、同組用戶和其他用戶的權限(讀寫執行)。

  • 助記語法設置命令:chmod u [+|-] s 文件/目錄
  • + 添加setuid權限;
  • - 取消setuid權限;
  • 注意:chmod命令的其他參數都可以與setuid權限設置結合使用。 在設置setuid前必須保證文件/目錄的所有者具有可執行權限,否則設置則無效。

    執行權限:chmod必須以root權限才能執行,如果是普通用戶想執行chmod時,需要在命令前加sudo命令來提升權限為root權限。

    案例演示1:

    創建一個新文件testFile,使用數字設置方法為文件testFile添加setuid權限,具體使用如下命令:

  • touch testFile
  • ls -l testFile
  • sudo chmod 4764 testFile
  • ls -l testFile
  • 第一條命令是創建新文件testFile; 第二條命令是查看testFile現有的權限; 第三條命令是在保證testFile原有權限的情況下為其添加setuid權限; 第四條命令是查看是否添加成功;

    案例演示2:

    創建一個新目錄testDir,使用助記語法設置方法為目錄testDir添加setuid權限,具體使用如下命令:

  • mkdir testDir
  • sudo chmod u+s testDir
  • ls -l .
  • 案例演示3:

    創建一個新文件testFile,使用助記語法為文件testFile添加setuid權限,具體使用如下命令:

  • touch testFile
  • sudo chmod u+x,u+s testFile
  • ls -l testFile
  • 第一條命令是創建新文件testFile; 第二條命令是在設置testFile為可執行權限并為其添加setuid權限; 第三條命令是查看是否添加成功;

    如果不給文件testFile設置可執行權限直接設置setuid權限后,標記為是S而不是s,詳細結果如下圖所示:

    setgid

    setgid的作用是讓執行該命令的用戶以該命令所有者的同組用戶的權限去執行。

    設置setgid命令有兩種方法,一種是數字設置,另一種是通過助記語法。建議使用助記語法設置setgid權限。

    數字設置命令:

    chmod 2xxx 文件/目錄

    其中xxx表示文件/目錄的所有者、同組用戶和其他用戶的權限(讀寫執行)。

    助記語法設置命令:

    chmod g [+|-] s 文件/目錄

  • + 添加setgid權限;
  • - 取消setgid權限;
  • 注意:chmod命令的其他參數都可以與setgid權限設置結合使用。 在設置setgid前必須保證文件/目錄的同組用戶具有可執行權限,否則設置則無效。

    執行權限:chmod必須以root權限才能執行,如果是普通用戶想執行chmod時,需要在命令前加sudo命令來提升權限為root權限。

    案例演示1:

    創建一個新文件testFile,使用數字設置方法為文件testFile添加setgid權限,具體使用如下命令:

  • touch testFile
  • ls -l testFile
  • sudo chmod 2674 testFile
  • ls -l testFile
  • 第一條命令是創建新文件testFile; 第二條命令是查看testFile現有的權限; 第三條命令是在保證testFile原有權限的情況下為其添加setgid權限; 第四條命令是查看是否添加成功;

    案例演示2:

    創建一個新目錄testDir,使用助記語法設置方法為目錄testDir添加setgid權限,具體使用如下命令:

  • mkdir testDir
  • sudo chmod g+s testDir
  • ls -l .
  • 編程要求

    在右側編輯器中補充代碼,具體編程要求如下:

    • 使用助記語法為系統已存在文件oldFile1(默認權限為:rw_rw_r__)設置setuid權限;

    • 使用助記語法為系統已存在目錄oldDir1(默認權限為:rwxrwxrwx)設置setgid權限;

    • 使用助記語法為系統已存在文件oldFile2取消setuid權限;

    • 使用助記語法為系統已存在目錄oldDir2取消setgid權限。

    測試說明

    平臺會對你編寫的代碼進行評測:

    預期輸出:

  • 設置oldFile1文件權限成功
  • 設置oldDir1目錄權限成功
  • 設置oldFile2文件權限成功
  • 設置oldDir2目錄權限成功

  • 當一個人用工作去迎接光明,光明很快就會來照耀著他。——馮學峰

    開始你的任務吧,祝你成功!

    #!/bin/bash#在以下部分寫出完成任務的命令 #***********begin*************# chmod 4764 oldFile1 chmod g+s oldDir1 chmod u-s oldFile2 chmod g-s oldDir2 #************end**************#

    第2關:Linux目錄stick bit

    • 任務描述
    • 相關知識
      • stick bit
    • 編程要求
    • 測試說明

    任務描述

    假設由用戶A在Dir目錄下創建了一個文件testA,用戶B在Dir目錄下創建了一個文件testB,此時如何確保A用戶不能刪除B用戶創建的文件而B用戶也不能刪除A用戶創建的文件,通過本關的學習,我們將學會解決以上問題。

    本關任務:對系統已存在的目錄設置sticky bit。

    相關知識

    Linux中目錄除了有可讀、可寫和可執行這三種權限外,還存在比較特殊的權限,這些特殊權限包括上一關卡講解的setuid和setgid這兩種,還有一種就是本關講解的**粘滯位sticky bit**。

    我們知道Linux的/tmp目錄是系統的臨時文件目錄,所有的用戶在該目錄下擁有所有的權限,也就是說在該目錄下可以任意創建、修改、刪除文件,那如果用戶A在該目錄下創建了一個文件,用戶B將該文件刪除了,這種情況我們是不能允許的。為了達到該目的,就出現了stick bit(粘滯位)的概念。它是針對目錄來說的,如果該目錄設置了stick bit(粘滯位),則該目錄下的文件除了該文件的創建者和root用戶可以刪除和修改,別的用戶均不能刪除和修改,這就是粘滯位的作用。

    Linux目錄權限使用常見的八進制權限掩碼來表示的,通常都是用三位數表示,但確切地說,它是用四位數表示的,因為除了讀、寫和執行權限以外還有特殊的權限。

    • sticky bit的八進制表示為1000

    同樣sticky bit也可以使用字母表示,使用t表示。

    如果目錄的其他用戶的可執行位是t,則表示該目錄被設置了sticky bit權限。

    接下讓我們詳細的學習目錄的sticky bit的使用方法。

    stick bit

    stick bit的作用是讓具有stick bit位的目錄下的所有文件/目錄只有創建者和root才能對其刪除和修改,其他用戶一律不能刪除和修改。

    例如:Linux的/tmp目錄就具有stick bit權限,詳細權限如下所示:

    可以看到/tmp目錄的其他用戶的可執行位是t,則說明/tmp目錄被設置了stick bit權限。

    設置stick bit命令有兩種方法,一種是數字設置,另一種是通過助記語法。建議使用助記語法設置stick bit權限。

    數字設置命令:chmod 1xxx 目錄

    其中xxx表示目錄的所有者、同組用戶和其他用戶的權限(讀寫執行)。

    助記語法設置命令:chmod o [+|-] t 目錄

  • + 添加stick bit權限;
  • - 取消stick bit權限;
  • 注意:

  • chmod命令的其他參數都可以與stick bit權限設置結合使用。
  • 在設置stick bit前必須保證目錄的其他用戶具有可執行權限,否則設置則無效。
  • stick bit權限只能用于設置目錄,不能用于設置文件。
  • 執行權限:

    chmod必須以root權限才能執行,如果是普通用戶想執行chmod時,需要在命令前加sudo命令來提升權限為root權限。

    案例演示1:

    創建一個新目錄testDir,使用助記語法設置方法為目錄testDir添加stick bit權限,具體使用如下命令:

  • mkdir testDir
  • sudo chmod o+t testDir
  • ls -l .
  • 如果不給目錄testDir設置可執行權限直接設置stick bit權限后,標記為是T而不是t,詳細結果如下圖所示:

    案例演示2:

    創建一個新目錄testDir,使用數字設置方法為目錄testDir添加stick bit權限,具體使用如下命令:

  • mkdir testDir
  • ls -l ./
  • sudo chmod 1775 testDir
  • ls -l ./
  • 第一條命令是創建新目錄testDir; 第二條命令是查看testDir現有的權限; 第三條命令是在保證testDir原有權限的情況下為其添加stick bit權限; 第四條命令是查看是否添加成功;

    案例演示3:

    將目錄testDir取消stick bit權限,具體使用如下命令:

  • sudo chmod o-t testDir
  • ls -l .
  • 編程要求

    在右側編輯器中補充代碼,完成對目錄設置stick bit權限,具體編程要求如下:

    • 使用助記語法為系統已存在目錄oldDir1(默認權限為:rwxrwxrwx)設置stick bit權限;

    • 使用助記語法為系統已存在目錄oldDir2取消stick bit權限。

    測試說明

    平臺將對你編寫的代碼進行評測:

    預期輸出:

  • 設置oldDir1目錄權限成功
  • 設置oldDir2目錄權限成功

  • 一個人幾乎可以在任何他懷有無限熱忱的事情上成功。 ——查爾斯·史考伯

    開始你的任務吧,祝你成功!

    #!/bin/bash#在以下部分寫出完成任務的命令 #***********begin*************# chmod o+t oldDir1 chmod o-t oldDir2 #************end**************#

    第3關:Linux文件/目錄特殊屬性

    • 任務描述
    • 相關知識
      • chattr
      • lsattr
    • 編程要求
    • 測試說明

    任務描述

    假設用戶A在創建了一個文件testA,那么此時需要其他所有用戶(包括root用戶)不能將其刪除,也就是說如何創建一個不可刪除的文件,聽起來多么酷炫,通過本關的學習,我們就可以輕松的創建一個不可刪除的文件。

    本關任務:查看/修改Linux中文件/目錄的特殊屬性。

    相關知識

    Linux中文件/目錄常見的屬性的所屬者、所屬組、創建時間和最新修改時間等外,還存在些隱藏屬性,這些隱藏屬性在保護系統文件的安全性上非常重要。

    Linux使用lsattr和chattr兩個命令查看和修改文件/目錄的特殊屬性。

    接下讓我們詳細的學習lsattr和chattr的使用方法。

    chattr

    chattr的作用是修改文件/目錄的特殊屬性。

    具體命令如下:

    chattr [+|-|=] 屬性標示符 命令參數 文件/目錄

    常用命令參數如下:

  • -R:遞歸處理,將指令目錄下的所有文件及子目錄一并處理;
  • -V:顯示指令執行過程;
  • +<屬性標示符>:開啟文件或目錄的該項屬性;
  • -<屬性標示符>:關閉文件或目錄的該項屬性;
  • =<屬性標示符>:指定文件或目錄的該項屬性。
  • 常用屬性標示符:

  • a:讓文件或目錄僅供附加用途;
  • A:不更新文件或目錄的最后存取時間;
  • c:將文件或目錄壓縮后存放;
  • d:將文件或目錄排除在傾倒操作之外;
  • i:不得任意更動文件或目錄;
  • s:保密性刪除文件或目錄;
  • S:即時更新文件或目錄;
  • u:預防意外刪除。
  • 執行權限:chattr必須以root權限才能執行,如果是普通用戶想執行chattr時,需要在命令前加sudo命令來提升權限為root權限。

    案例演示1:

    為文件testFile設置為不得任意更動,具體使用如下命令:

  • sudo chattr +i testFile
  • 將文件testFile設置為i隱藏屬性后,試圖刪除,可以看到無法對其進行刪除操作。

    案例演示2:

    將目錄testDir以及目錄下所有內容一并設置為不得任意更動,具體使用如下命令:

  • sudo chattr +i -R testDir
  • 試圖刪除testDir目錄下的file1文件,可以看到無法刪除。

    案例演示3:

    將testFile文件的i屬性取消,具體使用如下命令:

  • sudo chattr -i testFile
  • 可以看到刪除i屬性后,既可以刪除該文件。

    lsattr

    lsattr的作用查看文件/目錄的特殊屬性設置情況。

    具體命令如下:

    lsattr 命令參數 文件/目錄

    常用參數如下:

  • -R:遞歸的操作方式;
  • -V:顯示指令的版本信息;
  • -a:列出目錄中的所有文件,包括隱藏文件。
  • 案例演示1:

    查看目錄testDir下所有內容的特殊屬性,具體使用如下命令:

  • lsattr -Ra testFile
  • 編程要求

    在右側編輯器中補充代碼,具體編程要求如下:

    • 為系統已存在文件/root/oldFile1添加i屬性;

    • 查看系統已存在文件/root/oldFile2的特殊屬性;

    • 為系統已存在文件/root/oldFile3取消i屬性。

    測試說明

    平臺會對你編寫的代碼進行評測:

    預期輸出:

  • 設置/root/oldFile1文件屬性成功
  • 查看/root/oldFile2文件屬性成功
  • 取消/root/oldFile3文件屬性成功

  • 每一種挫折或不利的突變,是帶著同樣或較大的有利的種子。——愛默生

    開始你的任務吧,祝你成功!

    #!/bin/bash#在以下部分寫出完成任務的命令 #***********begin*************# chattr +i /root/oldFile1 lsattr -a /root/oldFile2 chattr -i /root/oldFile3 #************end**************# 與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的EduCoder Linux文件/目录高级管理三的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。