系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux文件權(quán)限和訪問模式

Linux系統(tǒng)文件權(quán)限和訪問模式介紹

時間:2015-09-22 14:57:12 作者:zhijie 來源:系統(tǒng)之家 1. 掃描二維碼隨時看資訊 2. 請使用手機瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150922/58338.html 手機查看 評論

  Linux系統(tǒng)不同文件之中,有不同的權(quán)限。這是為了文件存儲的時候的安全考慮,也是為了讓Linux各個模塊間更加順暢的訪問和調(diào)度。本文為大家?guī)?a href="http://www.legolfclassic.com/xtjc/20150803/54517.html" target="_blank">Linux系統(tǒng)文件權(quán)限和訪問模式介紹。

Linux系統(tǒng)文件權(quán)限和訪問模式介紹

  權(quán)限

  所有者權(quán)限 u :文件所有者能夠進行的操作

  組權(quán)限 g :文件所屬用戶組能夠進行的操作

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

  查看文件權(quán)限

  使用 ls -l 命令可以查看與文件權(quán)限相關(guān)的信息:

  $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

  第一列就包含了文件或目錄的權(quán)限。

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

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

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

  第三組字符(8-10)表示所有其他用戶的權(quán)限,rwxr-xr-- 表示其他用戶只能讀。╮)文件。

  文件訪問模式

  文件權(quán)限是Linux系統(tǒng)的第一道安全防線,基本的權(quán)限有讀。╮)、寫入(w)和執(zhí)行(x):

  讀取r:用戶能夠讀取文件信息,查看文件內(nèi)容。

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

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

  目錄訪問模式

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

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

  寫入w:用戶可以在當(dāng)前目錄中刪除文件或創(chuàng)建文件

  執(zhí)行x:執(zhí)行權(quán)限賦予用戶遍歷目錄的權(quán)利,例如執(zhí)行 cd 和 ls 命令。

  改變權(quán)限

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

  使用符號表示權(quán)限

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

  符號 說明

  + 為文件或目錄增加權(quán)限

  - 刪除文件或目錄的權(quán)限

  = 設(shè)置指定的權(quán)限

  下面的例子將會修改 testfile 文件的權(quán)限:

  $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

  使用數(shù)字表示權(quán)限

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

  數(shù)字 說明 權(quán)限

  0 沒有任何權(quán)限 ---

  1 執(zhí)行權(quán)限 --x

  2 寫入權(quán)限 -w-

  3 執(zhí)行權(quán)限和寫入權(quán)限:1 (執(zhí)行) + 2 (寫入) = 3 -wx

  4 讀取權(quán)限 r--

  5 讀取和執(zhí)行權(quán)限:4 (讀。 + 1 (執(zhí)行) = 5 r-x

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

  7 所有權(quán)限: 4 (讀。 + 2 (寫入) + 1 (執(zhí)行) = 7 rwx

  下面的例子,首先使用 ls -1 命令查看 testfile 文件的權(quán)限,然后使用 chmod 命令更改權(quán)限:

  $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,上面提到的文件權(quán)限也是基于用戶和群組來分配的。

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

  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。

  SUID和SGID位

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

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

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

  SGID也是一樣。一般情況下程序會根據(jù)你的組權(quán)限來運行,但是給程序設(shè)置SGID后,就會根據(jù)程序所在組的組權(quán)限運行。

  如果程序設(shè)置了SUID位,就會在表示文件所有者可執(zhí)行權(quán)限的位置上出現(xiàn)‘s’字母;同樣,如果設(shè)置了SGID,就會在表示文件群組可執(zhí)行權(quán)限的位置上出現(xiàn)‘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 文件設(shè)置了SUID位,這時普通用戶會以root用戶的權(quán)限來執(zhí)行passwd程序。

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

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

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

  $ chmod ug+s dirname

  $ ls -l

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

  $

  以上就是Linux系統(tǒng)文件權(quán)限和訪問模式的解析了,只要充分了解了Linux系統(tǒng)文件權(quán)限才能了解Linux文件之間的訪問模式。

發(fā)表評論

0

沒有更多評論了

評論就這些咯,讓大家也知道你的獨特見解

立即評論

以上留言僅代表用戶個人觀點,不代表系統(tǒng)之家立場

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

掃碼關(guān)注
掃碼關(guān)注

掃碼關(guān)注 官方交流群 軟件收錄