Linux_shell_文件安全與權限(01)

一個文件一經創建就具有三種訪問方式:

1.讀

2.寫

3.執行

按照所針對的用戶,文件的權限可分爲三類:

1.文件屬主

2.同組用戶

3.其他用戶

 

1.1文件

一個文件一經創建系統將保存其所有信息(文件位置、文件類型、文件長度、文件的權限等)

1.2文件類型

文件的類型有7種(可以用ls -l 命令查看得出的結果的第一位看出)

    d 目錄

    l 符號鏈接(指向另一個文件)

    s 套接文字

    b 塊設備文件

    c 字符設備

    p 命令管道文件

    - 普通文件(不屬於以上類型的文件)

1.3權限

使用touch創建一個測試文件

# touch test

然後使用 ls -l查看

#ls -l

-rw-r--r-- 1 root root 0 05-22 11:58 test

第一個 - 告訴我們這是一個普通文件

接下來的9個字符代表的意思分別爲:

    rw- 文件屬主的權限

    r--  同組用戶的權限

    r--其他人的權限

接着是1 表示該文件硬鏈接的數目

root 文件的屬主

root 文件屬主所在的用戶組

0 文件的長度 不是K字節

05-22 11:58  文件更新時間

test 文件名

 

三組字符中每一組字符中含有三個權限爲:

    r 讀權限

    w 寫權限/更改權限

    x 執行該腳本或程序的權限

    (- 表示被禁用)

下面我們來看一下剛纔創建的文件權限-rw-r--r--

-                          rw-                                      r--                                                    r--

屬於普通文件         屬主可以讀寫但不可以執行       同組用戶可以讀 但不可以寫和執行          其他用戶可讀 但不可寫和執行

示例:

-                          rwx                                      r-x                                                    rw-

屬於普通文件         屬主可以讀寫執行          同組用戶可以讀和執行 但不可以寫          其他用戶可讀寫 但不可執行

 

 

1.4改變權限位

符號模式

chmod 格式:

chmod [who] operator [permission] filename

    who :

         u 文件屬主權限

         g 同組用戶權限

         o 其他用戶權限

         a 所有用戶

    operator :

          + 增加權限

          - 取消權限

          = 設定權限

    permission:

          r 讀

          w 寫

          x 執行

          s

          t

          ........

我們來修改我們剛纔創建的文件:-rw-r--r-- 1 root root 0 05-22 11:58 test 

使其屬主具有執行的權限

#chmod u+x test

使其同組用戶具有寫的權限

#chmod g+w test

賦於同組用戶和其他用戶寫的權限

#chmod go+w test

 

絕對模式:

chmod [mode] file

mode是一個八進制數

 

對於八進制數和文件權限表

    0400    文件屬主可讀

    0200    文件屬主可寫

    0100    文件屬主可執行

   

    0040    同組用戶可讀

    0020    同組用戶可讀

    0010    同組用戶可執行

 

    0004    其他用戶可讀

    0002    其他用戶可寫

    0001    其他用戶可執行

 

看我們剛纔的文件:-rw-r--r-- 1 root root 0 05-22 11:58 test 

rw-   = 0400 + 0200 = 0600

r--     = 0040

r--     = 0004

最後結果等於:0600 + 0040 + 0004 = 0644(644即表示rw-r--r--權限)

另外一種算法

r   w  -          r  -  -        r  -  -

4 +2             4              4                 =644

 

 

r   w  x          r  -  -        r  -  -

4+2+1          4              4                = 744

r   w  x         r  w  -        r  w  -

4+2+1          4+2          4+2            =766

 

 

現在我們可以用絕對模式把我們剛纔創建的文件進行修改:

目前我們的文件:-rwxrwxr-- 1 root root 0 05-22 11:59 test

我們使其同組用戶和其他用戶只具有讀權限

#chmod 744 test

#ls -l

-rwxr--r-- 1 root root 0 05-22 11:59 test
我們使屬主不具有執行 並且同組用戶具有讀寫 其他用戶只具有讀權限

 #chmod 664 test

 #ls -l

-rw-rw-r-- 1 root root 0 05-22 11:59 test

 

如果想要一次設置一個目錄下面的所有文件的權限 可使用下面命令:

chmod 644*

這將使文件屬主不具有執行 並且同組用戶具有讀寫 其他用戶只具有讀權限

 

還可以使用-R選項連同子目錄下的文件一起設置

chmod -R 644 /usr/local/home/*

這樣就可以一次將/usr/local/home/

目錄下的所有文件連同各個子目錄下的文件的權限全部設置成644權限

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章