0319 第四次課:文件目錄管理2

文件目錄管理2

1、文件特殊權限

 

  • 隱藏權限lsattr_chattrhtml

     

  1. 設置隱藏權限node

    命令:chattr 用來修改文件系統的權限屬性linux

    chatrr 只有 root 用戶可使用,用來修改文件系統的權限屬性,創建凌駕於 rwx 基礎權限之上的受權。windows

  • 經常使用參數及權限說明:工具

    參數 參數說明
    + 增長權限
    - 刪除權限
    = 等於某權限
    屬性 對象 屬性說明
    i 文件 不容許對文件進行增、刪、改操做
    i 目錄 只能對目錄下的文件中的數據進行操做,不能新建和刪除文件
    a 文件 只容許對文件進行增長數據,不能進行修改和刪除
    a 目錄 只能在目錄下新建和修改文件,不能進行刪除文件
  1. 查看隱藏權限學習

    命令:lsattr 查看文件或目錄的隱藏權限測試

    經常使用參數說明:ui

    參數 參數說明
    a 顯示全部的文件或目錄,包括隱藏的
    R 遞歸顯示目錄文件及子目錄下的文件
  • 示例
  1. 測試i屬性文件權限3d

    新建一個測試文件,使用chattr +i 賦予i權限,使用lsattr命令查看日誌

    對此文件進行刪除、更名、修改操做

    

  1. 測試i的目錄權限

    新建一個測試目錄,使用chattr +i 賦予i權限,使用lsattr命令查看

    在該目錄下進行新建刪除文件

    對該目錄下已經存在的文件進行數據修改

  2. 測試文件a權限

    新建一個測試文件,添加a權限,並進行刪除修改操做


     

  3. 測試目錄a權限

    新建一個目錄添加a權限,在該目錄下進行新建、刪除、修改操做

 

  • 特殊權限-set_uid

    1.什麼是set_uid權限?

    經過上圖能夠看到passwd這個命令的權限是rwsr,多了一個s權限,這個s就是set_uid權限。

    2.set_uid的做用

    set_uid的做用就是讓普通用戶臨時擁有某個命令全部者的權限。如普通用戶進行修改密碼須要/etc/passwd和/etc/shadow的權限,可是它們全部者是root,普通用戶沒有權限,這時把它們加上set_uid讓普通用戶臨時擁有權限就能夠就行密碼修改操做了。

    3. 設置set_uid權限

    使用普通用戶使用ls命令查看root目錄

    能夠看到,普通用戶ls加上set_uid權限就臨時擁了有查看root目錄的權限,而沒有加上set_uid的cd就沒有進入root的權限

    4.其它知識點

    ls加上了set_uid權限,沒有了x權限爲何還能執行?

    由於s權限就有x的權限,因此root能夠執行,其它用戶自己就有x的權限因此能夠執行。  

  • 特殊權限-set_gid

    set_gid和set_uid相似,它不只僅能夠做用在文件上還能夠做用在目錄上,當它做用於文件時和set_uid相似。當它做用於目錄時,任何用戶建立子目錄或文件時的所屬組都和該目錄的具備的所屬組保持一致。

    1.在目錄上賦予s權限測試

    新建一個123目錄,並在123目錄下建立一個1.txt文件,查看它的所屬組是root

    給123目錄加上s權限,並修改所屬組爲wxy。新建一個2.txt文件,而後查看2.txt所屬組爲wxy。說目錄明加上set_gid權限後,建立子目錄或文件時的所屬組都和該目錄的具備的所屬組保持一致。

  • 特殊權限-stick_bit

    stick_bit的權限是防刪除(root用戶除外),只做用於目錄。

    系統中/tmp就是一個stick_bit權限目錄。t就是stick_bit權限

    1.stick_bit權限的做用

    tmp是系統的臨時文件目錄,全部的用戶在該目錄下都擁有777權限,能夠任意建立、修改、刪除文件。那若是用戶A在該目錄下建立了一個文件,用戶B將該文件刪除了,這種狀況咱們是不能容許的。爲了達到該目的,就出現了stick bit的概念。它是針對目錄來講的,若是該目錄設置了stick bit,則該目錄下的文件除了該文件的建立者和root用戶能夠修改,其它用戶只能修該不能進行刪除,這就是它的做用。

    2.設置stick_bit權限

    新建一個/test目錄,賦予stick_bit和777權限,切換到wxy用戶並在/test下新建一個1.txt

    再切換到wxy02用戶,進行刪除/test/1.txt,發現沒法刪除。

2、軟鏈接/硬連接

  • 軟鏈接

    軟鏈接相似於windows中的快捷方式。軟鏈接就是一個鏈接文件,它會指向另一個文件或目錄。

    1.建立軟鏈接

    命令: ls -s 源文件 目標文件

    軟鏈接注意事項:

    (1)源文件刪除或者更名後,軟鏈接會失效。

    (2)儘可能使用絕對路徑

    (3)刪除軟鏈接目錄時,路徑後面不要加/ ;

    建立一個軟鏈接,源文件爲/home/test/1.txt 目標文件爲/root/11.txt

    2.軟鏈接的用處

    節省磁盤空間,鏈接文件自己很小。如想使用某個大文件,可是須要更名可是源文件又不能刪除,這時cp就很是佔用空間,軟鏈接就能夠解決這種問題.

  1. 使用場景

    如/boot/下有個run.log一直在寫入系統日誌,可是boot空間快要滿了,可是其它目錄還有不少空間。這時就能夠cp /boot/run.log /xxx/run.log ,而後刪除/boot/run.log ,而後再作個軟件連:ln -s /boot/run.log /xxx/run.log

  • 硬連接

    學習硬連接以前,先來了解下:inode:

    在Linux的文件系統中,保存在磁盤分區中的文件不論是什麼類型都會給它分配一個編號,這個編號被稱爲索引節點編號號也叫inode。

    若是建立的新文件和另一個文件的inode相同,那它們就是互相爲硬連接。

    注意點:

    (1)硬連接沒法做用於目錄,只能對文件。

    (2)硬連接沒法跨分區。

    (3)硬連接不佔用雙份空間。

    (4)硬連接能夠刪除,可是最少留一個inode。

    建立硬連接:

    ln 文件1 文件2 這種方式就是建立硬連接。

    建立完成後使用ls -i(查看文件inode),能夠看到它們inode號相同。

3、find命令

   find命令是用來查找文件的命令。

   除了find還有一些其它不經常使用的查找命令:whereis、locate。這些命令都不經常使用這裏就很少介紹,主要仍是find命令。

  • 終端上快捷鍵操做

    快捷鍵 說明
    Ctrl + l 清屏
    Ctrl + u 刪除光標前的
    Ctrl + d 刪除光標後面的
    Ctrl + e 光標挪到最後
    Ctrl + a 光標挪到最前面
  • find 詳細介紹

    語法: path -option [ -print ] [ -exec -ok command ] {} ;

    find 經常使用選項說明:

    表達式 說明
    type 文件類型,如d:目錄,f:文件,l:鏈接符等
    size 按文件大小進行查找,經常使用單位:k, M, G
    name 安文件名稱進行查找
    atime n 按文件最後訪問時間查找文件,-n指n天之內,+n指n天之前
    mtime n 按文件最後改變時間查找文件,-n指n天之內,+n指n天之前
    ctime n 按文件最後修改時間來查找文件,-n指n天之內,+n指n天之前
    amin n 按文件最後訪問時間查找文件,-n指n分鐘之內,+n指n分鐘之前
    mmin n 按文件最後改變時間查找文件,-n指n分鐘之內,+n指n分鐘之前
    cmin n 按文件最後修改時間查找文件,-n指n分鐘之內,+n指n分鐘之前
  • 擴展知識點

    stat命令,用於顯示文件或文件系統的詳細信息。主要用來查看文件的時間戳。

    使用stat命令查看到文件有三個時間戳:

    Access Time:簡寫爲atime,表示文件的訪問時間。當文件內容被訪問時,更新這個時間

    Modify Time:簡寫爲mtime,表示文件內容的修改時間,當文件的數據內容被修改時,更新這個時間。

    Change Time:簡寫爲ctime,表示文件的狀態時間,當文件的狀態被修改時,更新這個時間,例如大小,權限,Blocks數。

  • find命令示例:

  1. 查找指定目錄下以.txt結尾的文件

    find /home/ -name "*.txt"

  2. 查找指定目錄下以.txt或.sh結尾文件

  3. 查找指定目錄3天之前修改過的文件

  4. 查找指定目錄3天之前查看過的文件

  5. 查找3天之內修改過的文件

  6. 目錄下有1/ 2/ 3/這幾個目錄,忽略其中2/目錄進行查找包含*.txt的文件

    find . -path ./2 -prune -o -type f -name "*.txt" -print

  7. 查找大於10k的文件

  8. 查找大於20M的文件

  9. 查找大於10k的文件,並刪除

    find /home/ -type f -size +10k -exec rm {} \;

  10. 查找30天之前的*.txt文件,並更名爲*.txt.bak

    find /root/ -type f -name "*.txt" -ctime +30 -exec mv {} {}.bak \;

    改完名後再進行查找

4、關於文件的其餘知識點

  • 文件類型

一談到文件類型,你們就能想到Windows的文件類型,好比file.txt、file.doc、file.sys、file.mp三、file.exe等,根據 文件的後綴就能判斷文件的類型。但在Linux一個文件是否能被執行,和後綴名沒有太大的關係,主要看文件的屬性有關。但Linux文件的後綴名仍是有必要的,特別是咱們本身建立一些文件,最好仍是加後綴名,這樣作的目的是僅僅是爲了咱們的在應用時方便。

  • windos和linux互傳文件

    使用lrzsz工具進行文件傳輸,這個只能在xhsell和secureCRT使用

    安裝:

    yum -y install lrzsz

    linux傳windos:

    命令:sz 文件名

    sz +文件名,選擇windows存放的目錄,點擊回車便可

    會提示傳輸完成

    windos傳linux

    命令:rz

    使用rz就會打開windows文件窗口,選擇文件點擊「打開」便可

5、課堂筆記

相關文章
相關標籤/搜索