導(dǎo)讀 | 在 下,一切東西都可以看做是文件。針對(duì)一個(gè)文件而言,不同的用戶對(duì)它有不同的權(quán)限。試想一下,假如有一個(gè)系統(tǒng)的配置文件,普通用戶都可以對(duì)它進(jìn)行修改,那么這將是多麼可怕的事情。所以,我們將根據(jù)不同的文件訪問者設(shè)置不同的權(quán)限。 |
在linux中,我們可以將文件的訪問者分為三類,針對(duì)這三類訪問者我們可以對(duì)他們?cè)O(shè)置不同的權(quán)限。
1、文件訪問者的分類文件和文件目錄的所有者:u(User)。
文件和文件目錄的所有者所在的組中的用戶:g(Group)。
其他用戶:o(Others)。
讀(r):具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來說,具有瀏覽目錄信息的權(quán)限。
寫(w):具有修改文件的權(quán)限;對(duì)目錄來說,具有刪除移動(dòng)目錄內(nèi)文件的權(quán)限。
執(zhí)行(x):具有執(zhí)行文件的權(quán)限,前提是文件必須可執(zhí)行;對(duì)目錄來說,具有進(jìn)入目錄的權(quán)限。
3.1、修改文件訪問權(quán)限
:chmod [參數(shù)] 權(quán)限 文件名
參數(shù):R表示遞歸的修改目錄中所有文件的權(quán)限
v表示顯示整個(gè)修改過程
chmod
有兩種修改文件權(quán)限的方法:
第一種:針對(duì)某一類訪問者設(shè)定權(quán)限,
命令格式:chmod 用戶表示符 +/-/= 文件權(quán)限 文件名
+表示為用戶增加文件權(quán)限,-表示取消用戶的權(quán)限,=表示賦予用戶這個(gè)權(quán)限。
用戶符號(hào):u表示所有者,g表示所有者所在的組,o表示其他人,a表示所有人。
第二種方法就是使用三位數(shù)的八進(jìn)制:
命令格式: chmod xxx(權(quán)限) 文件名
其中從左向右,第一個(gè)x表示屬主的權(quán)限,取值是0~7,0就表示”—”,7表示”rwx”。
第二個(gè)x表示屬組的權(quán)限,第三個(gè)x表示其他人的權(quán)限。
3.2、更改文件所有者
命令:chown [參數(shù)] 用戶名 文件名
參數(shù):R表示遞歸的修改目錄中所有文件的所有者
v表示顯示整個(gè)修改過程
例1:
例2:
3.3、更改文件所有者所在的組
命令:chgrp [參數(shù)] 用戶名 文件名
參數(shù):R表示遞歸的修改目錄中所有文件的所有者
v表示顯示整個(gè)修改過程
例1:
例2:
有沒有想過,當(dāng)我們新創(chuàng)建一個(gè)文件或者目錄的時(shí)候,它的默認(rèn)權(quán)限是什么?我們可不可以按照自己的意愿來設(shè)置呢?
linux中提供了umask這個(gè)命令來設(shè)置默認(rèn)權(quán)限。除此之外,umask還可以查看文件掩碼。文件掩碼就跟子網(wǎng)掩碼是一樣的道理。
預(yù)設(shè)權(quán)限=存取權(quán)限-文件掩碼
超級(jí)用戶默認(rèn)掩碼是0022,也就是生成文件后文件權(quán)限是:rwx r-x r-x。
普通用戶默認(rèn)掩碼是0002,也就是生成文件后文件權(quán)限是:rwx rwx r-x。
命令格式:umask 權(quán)限值
例:設(shè)置文件掩碼0000,則新創(chuàng)建文件或目錄后的權(quán)限是rwxrwxrwx。
注意,不是上面的例子錯(cuò)了,而是因?yàn)閠est文件是普通文件,不具備可執(zhí)行的權(quán)限,所以在創(chuàng)建新文件的時(shí)候應(yīng)該是:
例2:
目錄的可執(zhí)行權(quán)限:
目錄的可執(zhí)行權(quán)限表示你是否可以在這個(gè)目錄下執(zhí)行命令。如果目錄沒有x權(quán)限,則就無法對(duì)目錄執(zhí)行任何命令,甚至無法cd進(jìn)入目錄,即使你仍然對(duì)目錄有r權(quán)限。目錄的rw權(quán)限表示的是你可以對(duì)目錄里面的文件進(jìn)行讀寫,因此對(duì)于任何訪問者而言,只要他對(duì)一個(gè)目錄有w權(quán)限,那么他就能刪除這個(gè)目錄里面的文件。
這樣的的話,那文件的權(quán)限是不是就成擺設(shè)了,只要對(duì)一個(gè)目錄有w權(quán)限的話,任何用戶都可以隨意刪除目錄里面的文件,針對(duì)linux這種多用戶的操作系統(tǒng)而言,這是我們絕對(duì)不允許的。因此linux里面通過權(quán)限粘滯位來解決這種情況。
權(quán)限粘滯位是針對(duì)目錄而言的,當(dāng)目錄被設(shè)置了權(quán)限粘滯位之后,即便用戶對(duì)該目錄有寫入權(quán)限,也不能刪除這個(gè)目錄中其他用戶的文件數(shù)據(jù)。而是只有該文件的所有者和root用戶才有權(quán)刪除。設(shè)置了權(quán)限粘滯位之后,就保持了一種平衡,允許各用戶在目錄中任意的寫入刪除數(shù)據(jù),但是不能刪除其他用戶的數(shù)據(jù)。
設(shè)置了權(quán)限粘滯位的目錄,它的屬性中其他用戶的可執(zhí)行權(quán)限x將會(huì)變成t。
命令:chmod o+t 目錄名
例:
原文來自: