萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux系統文件權限和訪問模式介紹

Linux系統文件權限和訪問模式介紹

  Linux系統不同文件之中,有不同的權限。這是為了文件存儲的時候的安全考慮,也是為了讓Linux各個模塊間更加順暢的訪問和調度。本文為大家帶來Linux系統文件權限和訪問模式介紹。

Linux系統文件權限和訪問模式介紹

  權限

  所有者權限 u :文件所有者能夠進行的操作

  組權限 g :文件所屬用戶組能夠進行的操作

  外部權限 o :(其他權限):其他用戶可以進行的操作。

  查看文件權限

  使用 ls -l 命令可以查看與文件權限相關的信息:

  $ls -l /home/amrood

  -rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile

  drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir

  第一列就包含了文件或目錄的權限。

  第一列的字符可以分為三組,每一組有三個,每個字符都代表不同的權限,分別為讀取(r)、寫入(w)和執行(x):

  第一組字符(2-4)表示文件所有者的權限,-rwxr-xr-- 表示所有者擁有讀取(r)、寫入(w)和執行(x)的權限。

  第二組字符(5-7)表示文件所屬用戶組的權限,-rwxr-xr-- 表示該組擁有讀取(r)和執行(x)的權限,但沒有寫入權限。

  第三組字符(8-10)表示所有其他用戶的權限,rwxr-xr-- 表示其他用戶只能讀取(r)文件。 上一頁1234下一頁共4頁

  文件訪問模式

  文件權限是Linux系統的第一道安全防線,基本的權限有讀取(r)、寫入(w)和執行(x):

  讀取r:用戶能夠讀取文件信息,查看文件內容。

  寫入w:用戶可以編輯文件,可以向文件寫入內容,也可以刪除文件內容。

  執行x:用戶可以將文件作為程序來運行。

  目錄訪問模式

  目錄的訪問模式和文件類似,但是稍有不同:

  讀取r:用戶可以查看目錄中的文件

  寫入w:用戶可以在當前目錄中刪除文件或創建文件

  執行x:執行權限賦予用戶遍歷目錄的權利,例如執行 cd 和 ls 命令。

  改變權限

  可以使用 chmod (change mode) 命令來改變文件或目錄的訪問權限,權限可以使用符號或數字來表示。

  使用符號表示權限

  對於初學者來說最簡單的就是使用符號來改變文件或目錄的權限,你可以增加(+)和刪除(-)權限,也可以指定特定權限。

  符號 說明

  + 為文件或目錄增加權限

  - 刪除文件或目錄的權限

  = 設置指定的權限

  下面的例子將會修改 testfile 文件的權限:

  $ls -l testfile

  -rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile

  $chmod o+wx testfile

  $ls -l testfile

  -rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile

  $chmod u-x testfile

  $ls -l testfile

  -rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile

  $chmod g=rx testfile

  $ls -l testfile

  -rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile

  也可以同時使用多個符號:

  $chmod o+wx,u-x,g=rx testfile

  $ls -l testfile

  -rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile 上一頁12 34下一頁共4頁

  使用數字表示權限

  除了符號,也可以使用八進制數字來指定具體權限,如下表所示:

  數字 說明 權限

  0 沒有任何權限 ---

  1 執行權限 --x

  2 寫入權限 -w-

  3 執行權限和寫入權限:1 (執行) + 2 (寫入) = 3 -wx

  4 讀取權限 r--

  5 讀取和執行權限:4 (讀取) + 1 (執行) = 5 r-x

  6 讀取和寫入權限:4 (讀取) + 2 (寫入) = 6 rw-

  7 所有權限: 4 (讀取) + 2 (寫入) + 1 (執行) = 7 rwx

  下面的例子,首先使用 ls -1 命令查看 testfile 文件的權限,然後使用 chmod 命令更改權限:

  $ls -l testfile

  -rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile

  $ chmod 755 testfile

  $ls -l testfile

  -rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile

  $chmod 743 testfile

  $ls -l testfile

  -rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile

  $chmod 043 testfile

  $ls -l testfile

  ----r---wx 1 amrood users 1024 Nov 2 00:10 testfile

  更改所有者和用戶組

  在Linux中,每添加一個新用戶,就會為它分配一個用戶ID和群組ID,上面提到的文件權限也是基於用戶和群組來分配的。

  有兩個命令可以改變文件的所有者或群組:

  chown:chown 命令是“change owner”的縮寫,用來改變文件的所有者。

  chgrp:chgrp 命令是“change group”的縮寫,用來改變文件所在的群組。

  chown 命令用來更改文件所有者,其語法如下:

  $ chown user filelist

  user 可以是用戶名或用戶ID,例如

  $ chown amrood testfile

  $

  將 testfile 文件的所有者改為 amrood。

  注意:超級用戶 root 可以不受限制的更改文件的所有者和用戶組,但是普通用戶只能更改所有者是自己的文件或目錄。

  chgrp 命令用來改變文件所屬群組,其語法為:

  $ chgrp group filelist

  group可以是群組名或群組ID,例如

  $ chgrp special testfile

  $

  將文件 testfile 的群組改為 special。 上一頁123 4下一頁共4頁

  SUID和SGID位

  在Linux中,一些程序需要特殊權限才能完成用戶指定的操作。

  例如,用戶的密碼保存在 /etc/shadow 文件中,出於安全考慮,一般用戶沒有讀取和寫入的權限。但是當我們使用 passwd 命令來更改密碼時,需要對 /etc/shadow 文件有寫入權限。這就意味著,passwd 程序必須要給我們一些特殊權限,才可以向 /etc/shadow 文件寫入內容。

  Linux 通過給程序設置SUID(Set User ID)和SGID(Set Group ID)位來賦予普通用戶特殊權限。當我們運行一個帶有SUID位的程序時,就會繼承該程序所有者的權限;如果程序不帶SUID位,則會根據程序使用者的權限來運行。

  SGID也是一樣。一般情況下程序會根據你的組權限來運行,但是給程序設置SGID後,就會根據程序所在組的組權限運行。

  如果程序設置了SUID位,就會在表示文件所有者可執行權限的位置上出現‘s’字母;同樣,如果設置了SGID,就會在表示文件群組可執行權限的位置上出現‘s’字母。如下所示:

  $ ls -l /usr/bin/passwd

  -r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*

  $

  上面第一列第四個字符不是‘x’或‘-’,而是‘s’,說明 /usr/bin/passwd 文件設置了SUID位,這時普通用戶會以root用戶的權限來執行passwd程序。

  注意:小寫字母‘s’說明文件所有者有執行權限(x),大寫字母‘S’說明程序所有者沒有執行權限(x)。

  如果在表示群組權限的位置上出現SGID位,那麼也僅有三類用戶可以刪除該目錄下的文件:目錄所有者、文件所有者、超級用戶 root。

  為一個目錄設置SUID和SGID位可以使用下面的命令:

  $ chmod ug+s dirname

  $ ls -l

  drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname

  $

  以上就是Linux系統文件權限和訪問模式的解析了,只要充分了解了Linux系統文件權限才能了解Linux文件之間的訪問模式。

上一頁1234 下一頁共4頁
copyright © 萬盛學電腦網 all rights reserved