在linux中文件權限設置對於普通文件和目錄文件來講產生的控制是不一樣的。java
r(read):可讀取此文件的實際內容,例如文本文件的內容linux
w(write):文件寫入權限,能夠修改、新增和刪除文件的內容bash
x(execute):文件可被系統執行的權限spa
r(read contents in directory):表示具備讀取目錄結構列表的權限,當具備目錄r權限時能夠經過ls命令將該目錄下全部文件的文件名列表顯示出來,此外其餘信息沒法獲取操作系統
w(modify contents of directory):表示具備更改目錄結構列表的權限。包括在該目錄下建立刪除文件與目錄,重命名文件或目錄,轉移該目錄下文件或目錄到新的位置code
x(access directory):表示具備訪問當前目錄的權限blog
Linux中文件權限的修改經過chmod命令,權限的設置方法包括兩種:1數字類型改變文件權限;2字符類型改變文件權限。下面咱們分別講解兩種方式。進程
使用示例:it
1.設置文件/tmp/test/last.txt的權限爲全部者可讀可寫可執行,用戶組和不屬於本組的其餘人沒有任何權限,對應的Linux命令以下ast
chmod u=rwx,g=,o= test.txt
2.爲用戶組新增讀權限Linux命令以下
chmod g+r test.txt
3.剝奪文件全部者的寫入權限,Linux命令以下
chmod u-w test.txt
r:4
w:2
x:1
使用示例:
修改目錄/tmp/test的權限爲rwxrwx---修改權限指令對應以下:
chmod -R 770 /tmp/test
umask主要用於指定用戶在新建文件和目錄時的"默認全部權限須要減去的權限"。
文件和目錄的默認權限
若用戶新建文件,默認是沒有可執行的權限「x」,也就是隻有r、w兩個權限,默認權限的數字表示爲666,字符表示爲-rw-rw-rw.
若用戶新建目錄,由於x權限提供了進入這個目錄的權限因此目錄默認全部權限均開放,默認權限的數字表示爲777,字符表示爲drwxrwxrwx
1 - 查看默認權限umask
## 1.方法一直接輸入umask查看數字形態的權限設置分數 umask ## 2.方法二指定參數-S以符號類型查看默認權限 umask -S
umask的默認權限設置分數爲022,對應的字符表示爲--w--w--w-
1)用戶新建文件時,默認文件擁有的全部權限爲666減去umask的權限設置參數022,得出新建文件的默認權限爲644,字符表示爲-rw-r--r--,也就是新建文件文件全部者默認具有可讀可寫權限,用戶組和其餘用戶只有可讀權限;
2)用戶新建目錄時,默認目錄擁有的全部權限爲777減去mask的權限設置參數022,得出新建目錄的默認權限爲755,權限字符表示爲drwxr-xr-x,也就是新建目錄文件全部者擁有讀、寫、執行全部權限,所在用戶組和其餘用戶只有讀和執行權限,也就是用戶組和其餘用戶只能進入該目錄查看目錄下的文件和子目錄的列表信息
2 - 設置文件和目錄的默認權限
可直接在umask命令以後設置文件和目錄「默認全部權限須要減去的權限」進而肯定文件和目錄的默認權限
umask 002 ## 1.文件默認擁有的全部權限爲666,減去002,得出用戶新建文件的默認權限爲664,即-rw-rw-r--,文件全部者和用戶組用戶均擁##有文件的讀寫權限,其餘用戶只有讀權限 ## 2.目錄默認的全部者權限爲777,減去002,得出用戶新建文件的默認權限爲775,即drwxrwxr-x,文件全部者和用戶組用戶均 ## 擁有文件的讀、寫、執行權限,其餘用戶只有讀和執行權限便可以進入該目錄獲取子目錄和文件信息,但若是沒有文件的讀權限r則不## 能讀取文件內容
咱們以前瞭解的文件權限只有r(讀)、w(寫)和x(執行)權限,但在有時候使用ls -l查看文件和目錄文件屬性會發現部分文件或目錄的權限列信息有些奇怪,例如:
-rwsr-xr-x ......................
這裏s就是咱們要講的文件的特殊權限,文件的特殊權限與系統的進程有關感興趣的能夠自行去了解,咱們這邊只作簡單瞭解和設置
當s這個符號出現再文件全部者權限x的位置例如-rwsr-xr-x時文件就具備SUID特殊權限,那麼SUID特殊權限有什麼用呢,簡單來說SUID有如下的做用和使用限制:
1)SUID對於目錄無效,且僅對二進制程序有效;
2)執行者須要對該可執行文件具備x(可執行)權限;
3)本權限僅在執行程序的過程當中有效;
4)程序執行過程當中短暫的得到文件全部者的權限。
簡單來說就是設置了SUID特殊權限的文件,用戶只要擁有該文件的執行權限那麼在執行過程當中就能短暫得到文件全部者的全部權限,進行一些該用戶自己無權限進行的操做。
當s符號出如今文件所屬用戶組權限中x的位置例如-rwx--s--x,這就被稱爲SGID特殊權限,SGID特殊權限對於文件和目錄均有效。
對於文件來講SGID有如下功能和使用限制:
1)SGID只對二進制程序有效;
2)文件執行者須要具有該文件的x權限;
3)程序只在執行過程當中短暫得到文件所屬用戶組的權限。
## 1.以用戶zhangyanqing登錄系統 ## 咱們知道操做系統中有一個文件列表庫,位於/var/lib/mlocate/mlocate.db,locate命令經過查詢這個文件列表庫查找文件 ## 咱們先使用ls命令來看看該文件的權限信息 ls -l /var/lib/mlocate/mlocate.db 終端顯示結果: -rw-r-----. 1 root slocate 3472922 8月 3 09:53 /var/lib/mlocate/mlocate.db ## 從結果中能夠看出只有文件全部者root和所屬用戶組slocate有查看該文件內容的權限那麼咱們使用locate怎麼能查看該文件內容## ,先使用which命令查看locate命令所在的文件路徑 which locate ## 終端顯示:/usr/bin/locate ## 使用ls -l查看locate文件權限 ls -l /usr/bin/locate ## 終端顯示:-rwx--s--x. 1 root slocate 40512 11月 5 2016 /usr/bin/locate ## 到這裏咱們就清楚了,根據命令執行結果能夠知道locate命令具備SGID特殊權限,普通用戶屬於其餘用戶只有locate的x執行權限 ## 但因爲locate的SGID的特殊權限在locate命令執行時當前用戶擁有用戶組slocate的全部權限, ## 所以能夠訪問操做系統文件列表庫/var/lib/mlocate/mlocate.db
對於目錄來講SGID具備以下功能和使用限制:
1)若用戶對該目錄具備r和x權限,用戶能夠進入該目錄;
2)用戶在此目錄下具備w的權限,則用戶所建立的新文件的用戶組與此目錄的用戶組相同;
3)用戶在此目錄下的有效用戶組將會變成此目錄的用戶組
當t符號出如今文件其餘人權限中x的位置時例如drwxrwxrwt,這時文件具備SBIT特殊權限。SBIT目前只對目錄有效,它的主要做用和使用限制是:
1)用戶對目錄具備wx的權限;
2)該目錄加上了SBIT特殊權限則當用戶在該目錄下建立文件或目錄時,則除了root用戶,只有該用戶能刪除、重命名和移動本身建立的文件和目錄,而沒法刪除其餘用戶的文件
1)數字法設置:
咱們都知道數字法設置文件權限方式是三個數字的組合xyz,三個數字分別標識文件全部者、所屬用戶組和其餘用戶的權限,那麼文件特殊權限的設置其實就是在前面加上一個數字標識特殊權限,三個特殊權限的數字標識分別以下:
SUID : 4
SGID : 2
SBIT : 1
使用示例:
## 1.爲文件test.sh增長SUID特殊權限 chmod 4755 test.sh ## 2.爲文件test.sh增長SGID權限 chmod 2755 test.sh ## 3.爲目錄/tmp增長SBIT權限 chmod 1766 /tmp ## 4.爲文件test.sh增長SUID和SGID特殊權限 chmod 6755 test.sh
2 )符號法設置:
符號法設置特殊權限命令以下
SUID : chmod u+s 文件
SGID :chmod g+s 文件或目錄
SBIT :chmod o+t 目錄