歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux文件權限簡介

Linux文件權限簡介

日期:2017/3/3 15:59:40   编辑:關於Linux

一、用戶與用戶組

為了更好地理解文件權限,我們需要先有用戶和用戶組的概念。因為在Linux裡面,任何一個文件都具有“User(用戶)、Group(用戶組)及Others(其他用戶)”3種身份的個別權限。

1、用戶和文件所有者的概念

你用來登陸Linux主機的那個用戶名就是一個用戶,例如,root就是一個用戶,而Linux上存在很多的用戶。如果你在Linux上創建了一個文件,那麼默認情況下你就是這個文件的所有者。

2、用戶組的概念

有了用戶就可以區分不同的文件的所有者,也可以根據文件的所有者來限定用戶可不可以對文件進行讀寫或執行等操作,那為什麼還要有用戶組的概念呢?

原因很簡單,就是讓一些指定的用戶(非文件所有者),也能按照一定的權限訪問你的文件,而其他的人則不能訪問你的文件。而且設置用戶組也使這種權限的管理變得容易。

舉個例子來說,一個團隊A在進行項目開發,你是團隊A的成員,則你寫的文檔或者代碼,你的其他成員也需要能對其進行讀寫,則可以把團隊A的人加進一個用戶組,這個用戶組的人可以對這些文件進行讀寫,而其他的開發團隊,在沒有允許的情況下,是不能對你的團隊的代碼和文檔進行閱讀和修改。此外,每個用戶可以有多個用戶組的支持。

3、其他用戶(Others)的概念

既然文件有所屬的用戶組的話,那必然就有一些人是既不屬於這個用戶組,也不屬於文件所有者本身的用戶,例如上面例子中除團隊A之外的其他的開發團隊的用戶,就是屬於文件的其他用戶。

二、Linux文件屬性

在自己的主文件夾下,執行ls命令,得到下面的執行結果:

URL:http://www.bianceng.cn/OS/Linux/201410/45688.htm

在第一列,中我們看到了上面介紹之外的文件權限屬性,s和t。

1)SUID

當s這個標志出現在文件所有者的x權限上時,如上面的第二個例子,則被稱為Set UID,簡稱SUID的特殊權限。

基本上SUID具有如下的限制和功能:

a、SUID權限僅對二進制程序有效,不能用在shell script上面,對目錄也是無效的;

b、執行者對於該程序需要具有x的可執行權限;

c、本權限在執行該程序的過程中有效;

d、執行者將具有該程序所有者的權限;

看到這裡,可能對於SUID還不是很理解,舉上面的例子來說,就是passwd這個程序是root這個用戶所有的,並屬於root用戶組,但是我們知道,對於普通用戶,他們還是能夠改變自己的密碼,這是為什麼呢?其原因在於:

1、passwd是一個可執行的二進制程序;

2、這個可執行文件在文件所有者的x權限上的標志是s,即設置了SUID;

3、普通用戶對於root用戶和root用戶組來說是其他用戶(Others),然而從文件的權限中我們可以知道,它支持其他用戶(Others)對其進行讀和執行的操作,注意,這點很重要,因為如果Others的權限(後三位)設置為r--,則普通的用戶就執行passwd這個程序了,即使它在文件所有者的x權限上的標志是s。(注:這個可執行權限要對應用戶的角色,在相應的權限中有x的權限,如上面的例子中,無論是文件所有者,用戶組,還是Others都具有x的權限。)

4、在執行passwd這個程序時,普通的用戶將會獲得passwd這個程序的所有者的權限,即root對該程序的權限,而不是Others或用戶組的權限;

5、但是這個權限僅在passwd這個程序執行的過程中才有效,程序執行完畢之後,普通用戶就不再擁有這種權限了;

2)SGID

相應地,當s出現在用戶組的x時則稱為Set GID,即SGID。SGID可以針對文件和目錄來設置

對於文件來說,SGID有如下限制和功能:

a、SGID對二進制程序有用;

b、程序執行者對於該程序來說,需要備x的權限;

c、執行者在執行的過程中將會獲得該程序用戶組的支持。

對於文件的權限和操作來說,基本上與SUID相同,只是它獲得的不是程序所有者的權限,而是它的用戶組的權限。

而SGID可用於目錄,對於目錄來說,SGID有如下的限制和功能:

a、用戶若對於此目錄具有r與x的權限,該用戶能夠進入此目錄;

b、用戶在此目錄下的有效用戶組將會變成該目錄的用戶組;

c、若用戶在此目錄下具有w的權限,則用戶所創建的新文件的用戶組與此目錄的用戶組相同。

3)SBIT

SBIT只針對目錄有效,它對目錄的作用是:

當用戶對於此目錄具有w,x權限,即具有定稿的權限時,用戶在該目錄下創建文件或目錄,只有自己與root才有權利刪除該文件。

三、修改文件權限

修改文件權限的常用命令有:

chgrp:修改文件所屬用戶組

chown:修改文件所有者

chmod:修改文件的權限

至於這些命令的用法,這裡不詳述,要用時,可以找一下男人——man。

注:文件的三種特殊權限也可以用數學表示,4為SUID,2為SGID,1為SBIT,如-rwsr-xr-x,按照前面的計算我們知道,原先為755,由於它有SUID特殊權限,所以就變成了4755了。

Copyright © Linux教程網 All Rights Reserved