1:文件和目錄權限簡介html
1)權限對於目錄的意義linux
a:首先要明白的是目錄主要的內容是記錄文件名列表和子目錄列表,而不是實際存放數據的地方。shell
b:r權限:擁有此權限表示能夠讀取目錄結構列表,也就是說能夠查看目錄下的文件名和子目錄名,注意:僅僅指的是名字。瀏覽器
c:w權限:擁有此權限表示具備更改該目錄結構列表的權限,總之,目錄的w權限與該目錄下的文件名或子目錄名的變更有關,注意:指的是名字。具體以下:bash
l 在該目錄下新建新的文件或子目錄。ide
l 刪除該目錄下已經存在的文件或子目錄(不論該文件或子目錄的權限如何),注意:這點很重要,用戶可否刪除一個文件或目錄,看的是該用戶是否具備該文件或目錄所在的目錄的w權限。ui
l 將該目錄下已經存在的文件或子目錄進行重命名。.net
l 轉移該目錄內的文件或子目錄的位置。命令行
d:x權限:擁有目錄的x權限表示用戶能夠進入該目錄成爲工做目錄,能不能進入一個目錄,只與該目錄的x權限有關,若是用戶對於某個目錄不具備x權限,則沒法切換到該目錄下,也就沒法執行該目錄下的任何命令,即便具備該目錄的r權限。且若是用戶對於某目錄不具備x權限,則該用戶不能查詢該目錄下的文件的內容,注意:指的是內容,若是有r 權限是能夠查看該目錄下的文件名列表或子目錄列表的。因此要開放目錄給任何人瀏覽時,應該至少要給與r及x權限。xml
2)權限對於文件的意義
a:也應該明白的是文件是實際含有數據的地方,因此r、w、x權限對文件來講是與其內容有關的。
b:r權限:用於此權限表示能夠讀取此文件的實際內容。
c:w權限:擁有此權限表示能夠編輯、添加或者是修改該文件的內容。可是不包含刪除該文件,由於由上面權限對於目錄的意義得知刪除文件或目錄的條件是什麼。
d:x權限:表示該文件具備能夠被系統執行的權限。文件是否能被執行就是由該權限來決定的,跟文件名沒有絕對的關係。
2:設置基本權限
(1) 基本權限簡介
[root@localhost ~]# ls -l
總用量 100
-rw-------. 1 root root 1642 7月 1 2016 anaconda-ks.cfg
-rw-r--r--. 1 root root 47276 7月 1 2016 install.log
-rw-r--r--. 1 root root 10033 7月 1 2016 install.log.syslog
drwxr-xr-x. 2 root root 4096 7月 1 2016 公共的
drwxr-xr-x. 2 root root 4096 7月 1 2016 模板
- 10個字符肯定不一樣用戶能對文件幹什麼
- 第一個字符表明文件(-)、目錄(d),連接(l)
- 其他字符每3個一組(rwx),讀(r)、寫(w)、執行(x)
- 第一組rwx:文件全部者的權限是讀、寫和執行
- 第二組rw-:與文件全部者同一組的用戶的權限是讀、寫但不能執行
- 第三組r--:不與文件全部者同組的其餘用戶的權限是讀不能寫和執行
(2) 文件瀏覽器設置權限
右鍵須要設置權限的目錄或文件屬性à權限
(3) 文字設定法設置權限
chmod [who] [+ | - | =] [mode] 文件名
◆操做對象who能夠是下述字母中的任一個或它們的組合
u:表示用戶,即文件或目錄的全部者。
g:表示同組用戶,即與文件屬主有相同組ID的全部用戶。
o:表示其它用戶。
a:表示全部用戶,它是系統默認值。
◆操做符號
+:添加某個權限。
-:取消某個權限。
=:賦予給定權限,並取消其它全部權限(若是有的話)。
◆設置mode的權限可用下述字母的任意組合
r:可讀。
w:可寫。
x:可執行。
X:只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x屬性。
s:文件執行時把進程的屬主或組ID置爲該文件的文件屬主。方式「u+s」設置文件的
用戶ID位,「g+s」設置組ID位。
t:保存程序的文本到交換設備上。
u:與文件屬主擁有同樣的權限。
g:與和文件屬主同組的用戶擁有同樣的權限。
o:與其它用戶擁有同樣的權限。
文件名:以空格分開的要改變權限的文件列表,支持通配符。
一個命令行中能夠給出多個權限方式,其間用逗號隔開。
(4) 數字設定法設置權限
數字設定法的通常形式爲: chmod [mode] 文件名
數字屬性的格式應爲3個0到7的八進制數,其順序是(u)(g)(o)文件名,以空格分開的要改變權限的文件列表,支持通配符。 數字表示的權限的含義以下:0001爲全部者的執行權限;0002爲全部者的寫權限;0004爲全部者的讀權限;0010爲組的執行權限;0020爲組的寫權限;0040爲組的讀權限;0100爲其餘人的執行權限;0200爲其餘人的寫權限;0400爲其餘人的讀權限;1000爲粘貼位置位;2000表示假如這個文件是可執行文件,則爲組ID爲位置位,不然其中文件鎖定位置位;4000表示假如這個文件是可執行文件,則爲用戶ID爲位置位。
3:設置特殊權限
(1) 特殊權限簡介
除了咱們前面介紹的rwx權限外,Linux中還有另外三種特殊權限:SUID,SGID,SBIT
Ø 1.SUID:s出如今文件全部者的x權限上。
1)SUID只能用於二進制可執行文件,對目錄無效
2)執行者若具備該文件的x權限,則將具備文件全部者的權限
3)權限只在文件執行時有效,執行完畢再也不擁有全部者權限
Ø 2.SGID:s出如今文件所屬羣組的x權限上。
SGID和SUID不一樣,能夠用於目錄
1)使用者如有此目錄的x,w權限,則可進入和修改此目錄
2)使用者在此目錄下的羣組將變成該目錄的羣組,新建的文件,羣組是此目錄的羣組。
SGID對於文件來講
1)SGID只對二進制可執行文件有效
2)執行者若具備該文件的x權限,則將具備文件所屬羣組的權限
3)權限只在文件執行時有效,執行完畢再也不擁有所屬羣組權限
Ø 3.SBIT:t出如今文件其餘用戶的x權限上。
1)和SUID,SGID不一樣的是,只能用於目錄
2)使用者在該目錄下,僅本身與root纔有權力刪除新建的目錄或文件
(2) 文字設定法設置特殊權限
chmod u+s test \爲test文件加上suid權限
chmod g+s test \爲test文件加上sgid權限
chmod o+t test \爲test文件加上sbit權限
(3) 數字設定法設置特殊權限
chmod 4777 test \test擁有SUID權限,rwsrwxrwx
chmod 2777 test \test擁有SGID權限,rwxrwsrwx
chmod 1777 test \test擁有SBIT權限,rwxrwxrwt
1:更改用戶和組全部者
chown命令改變某個文件或目錄的全部者和所屬的組,該命令能夠向某個用戶受權,使該用戶變成指定文件的全部者或者改變文件所屬的組。用戶能夠是用戶或者是用戶D,用戶組能夠是組名或組id。文件名可使由空格分開的文件列表,在文件名中能夠包含通配符。
語法
chown(選項)(參數)
選項
-c或——changes:效果相似「-v」參數,但僅回報更改的部分;
-f或--quite或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號鏈接的文件做修改,而不更改其餘任何相關文件;
-R或——recursive:遞歸處理,將指定目錄下的全部文件及子目錄一併處理;
-v或——version:顯示指令執行過程;
--dereference:效果和「-h」參數相同;
--help:在線幫助;
--reference=<參考文件或目錄>:把指定文件或目錄的擁有者與所屬羣組所有設成和參考文件或目錄的擁有者與所屬羣組相同;
--version:顯示版本信息。
參數
用戶:組:指定全部者和所屬工做組。當省略「:組」,僅改變文件全部者;
文件:指定要改變全部者和工做組的文件列表。支持多個文件和目標,支持shell通配符。
實例
將目錄/usr/meng及其下面的全部文件、子目錄的文件主改爲 liu:
chown -R liu /usr/meng
2:更改組全部者
chgrp命令用來改變文件或目錄所屬的用戶組。該命令用來改變指定文件所屬的用戶組。其中,組名能夠是用戶組的id,也能夠是用戶組的組名。文件名能夠 是由空格分開的要改變屬組的文件列表,也能夠是由通配符描述的文件集合。若是用戶不是該文件的文件主或超級用戶(root),則不能改變該文件的組。
在UNIX系統家族裏,文件或目錄權限的掌控以擁有者及所屬羣組來管理。您可使用chgrp指令去變動文件與目錄的所屬羣組,設置方式採用羣組名稱或羣組識別碼皆可。
語法
chgrp(選項)(參數)
選項
-c或——changes:效果相似「-v」參數,但僅回報更改的部分;
-f或--quiet或——silent:不顯示錯誤信息;
-h或--no-dereference:只對符號鏈接的文件做修改,而不是該其餘任何相關文件;
-R或——recursive:遞歸處理,將指令目錄下的全部文件及子目錄一併處理;
-v或——verbose:顯示指令執行過程;
--reference=<參考文件或目錄>:把指定文件或目錄的所屬羣組所有設成和參考文件或目錄的所屬羣組相同;
參數
· 組:指定新工做名稱;
· 文件:指定要改變所屬組的文件列表。多個文件或者目錄之間使用空格隔開。
實例
將/usr/meng及其子目錄下的全部文件的用戶組改成mengxin
chgrp -R mengxin /usr/meng
功能說明:指定在創建文件時預設的權限掩碼。
語 法:umask [-S][權限掩碼]
補充說明:umask可用來設定[權限掩碼]。[權限掩碼]是由3個八進制的數字所組成,將現有的存取權限減掉權限掩碼後,便可產生創建文件時預設的權限。
參 數:
-S 以文字的方式來表示權限掩碼。
當最初登陸到系統中時, umask命令肯定了你建立文件的缺省模式。這一命令實際上和
chmod命令正好相反。你的系統管理員必需要爲你設置一個合理的umask值,以確保你建立的
文件具備所但願的缺省權限,防止其餘非同組用戶對你的文件具備寫權限。
在已經登陸以後,能夠按照我的的偏好使用umask命令來改變文件建立的缺省權限。相應
的改變直到退出該shell或使用另外的umask命令以前一直有效。
通常來講,umask命令是在/etc/profile文件中設置的,每一個用戶在登陸時都會引用這個文
件,因此若是但願改變全部用戶的umask,能夠在該文件中加入相應的條目。若是但願永久性
地設置本身的umask值,那麼就把它放在本身$HOME目錄下的.profile或.bash_profile文件中。
1 如何計算umask值
umask命令容許你設定文件建立時的缺省模式,對應每一類用戶(文件屬主、同組用戶、
其餘用戶)存在一個相應的u m a s k值中的數字。對於文件來講,這一數字的最大值分別是6。
統不容許你在建立一個文本文件時就賦予它執行權限,必須在建立後用c h m o d命令增長這一
權限。目錄則容許設置執行權限,這樣針對目錄來講, u m a s k中各個數字最大能夠到7。
該命令的通常形式爲:
umask nnn
其中n n n爲umask置0 0 0 - 7 7 7。
umask值與權限
例如,對於umask值002,相應的文件和目錄缺省建立權限是什麼呢?
第一步,咱們首先寫下具備所有權限的模式,即777 (全部用戶都具備讀、寫和執行權限)。
第二步,在下面一行按照umask值寫下相應的位,在本例中是002。
第三步,在接下來的一行中記下上面兩行中沒有匹配的位。這就是目錄的缺省建立權限。
稍加練習就可以記住這種方法。
第四步,對於文件來講,在建立時不能具備文件權限,只要拿掉相應的執行權限比特便可。
這就是上面的例子,其中umask值爲002:
1) 文件的最大權限rwx rwx rwx (777)
2) umask值爲002 - - - - - - -w-
3) 目錄權限rwx rwx r-x (775) 這就是目錄建立缺省權限
4) 文件權限rw- rw- r-- (664) 這就是文件建立缺省權限
下面是另一個例子,假設此次umask值爲022:
1) 文件的最大權限rwx rwx rwx (777)
2 ) u m a s k值爲022 - - - -w- -w-
3) 目錄權限rwx r-x r-x (755) 這就是目錄建立缺省權限
4) 文件權限rw- r-- r-- (644) 這就是文件建立缺省權限
2 經常使用的umask值
若是想知道當前的umask值,可使用umask命令:
若是想要改變umask值,只要使用umask命令設置一個新的值便可:
$ umask 002
確認一下系統是否已經接受了新的umas k值:
在使用umask命令以前必定要弄清楚到底但願具備什麼樣的文件/目錄建立缺省權限。不然可能會獲得一些很是奇怪的結果;例如,若是將umask值設置爲600,那麼所建立的文件/目錄的缺省權限就是066!除非你有特殊須要,不然沒有必要去管他,系統默認的值「022」umask是用的掩碼,至於掩碼的概念,從基礎學吧,這裏不說了。
掌握二個要點,
Ø 文件基數爲666,目錄爲777,即文件無設x位,目錄可設x位。
Ø chmod是設哪一個位,哪麼哪一個位就有權限,而umask是設哪一個位,則哪一個位上就沒權限
咱們只要記住umask是從權限中「拿走」相應的位便可。
1:ACL簡介
2:設置Linux系統支持ACL功能
(1) 安裝ACL軟件包
[root@localhost ~]# rpm -qa acl
(2) 設置支持ACL功能
a) 設置支持ACL功能
[root@localhost ~]# mount -o remount,acl
[root@localhost ~]# mount
b) 設置開機自動啓用ACL
[root@localhost ~]# vi /etc/fstab
UUID=294ad562-2483-41ce-b5c8-22feb620a766 /boot ext4 defaults,acl 1 2
[root@localhost ~]# mount -o remount /dev/sda1
3:查看文件和目錄ACL(見附件)
getfacl命令
4:設置文件和目錄ACL(見附件)
(1) setfacl命令
(2) chacl命令