LInux 文件權限

1.文件權限
系統最低層安全設定設定方法之一
保證文件可以被可用的用戶做相應的操作

2.文件權限的查看
ls -l file    或   ll  file              ##文件權限查詢


ls -ld dir  或   ll -d  dir          ##目錄文件查詢

2.文件權限的讀取
 -  | rw-r--r-- |  1  | root | root |  0  | Jul 24 21:32 |  file
[1]     [2]        [3]    [4]     [5]     [6]           [7]            [8]

 

[1]
文件的類型
-                                            ##空文件或者文本
d                                           ##目錄
l                                            ##軟連接
s                                           ##socket套接字#程序接口
b                                           ##block塊設備
c                                           ##字符設備
[2]
文件的權限
rw-|r--|r--  
 1     2   3
1.文件擁有者對文件能做什麼操作
2.文件所有組對文件能做什麼操作
3.其他人對文件能做什麼操作
[3]
對文件:文件硬連接個數(文件內容被系統記錄的次數)
對目錄:目錄的當中子目錄個數
[4]
文件所有人
[5]
文件所有組
[6]
對文件:文件的大小
對目錄:目錄中子文件元數據(matedate可以理解爲文件的屬性)大小
[7]
文件的內容被修改的時間
[8]
文件名稱

4.如何改變文件的所有人和所有組
chown  student  file                 ##將file的所有人改爲student

chgrp  student  file                  ##將file的所有組改爲student


 
5.如何改變用戶的權限
1).對權限的理解
r
對文件:是否可以查看文件中的內容  ---->cat  file
對目錄:是否可以產看目錄中有什麼子文件或者子目錄  ---> ls dir
w
對文件:是否可以改變文件裏面記錄的字符
對目錄:是否可以對目錄中子目錄或子文件的元數據進行更改
x
對文件:是否可以通過文件名稱調用文件內記錄的程序
對目錄:是否可以進入目錄

2).更改方式
chmod  <u|g|o><+|-|=><r|w|x>  file|dir
chmod  u+x  file                                ##給file所有人的權限加x
chmod  g-r   file                                 ##給file所有組的權限減r
chmod  u-wx   file                              ##給file所有人權限減wx
chmod  g=rw-  file                              ##將file的所有組權限改爲rw-
 

3).以數字的方式更改權限

rwx
210
r=4
w=2
x=1
例:
r-x|r--|--x
 5   4   1

7=rwx   6=rw-   5=r-x   4=r--   3=-wx   2=-w-   1=--x  0=---

chmod 541 file                                    ##將file權限改爲541,即r-xr----x



對系統來說給的權限越多意義越大。風險也越大
建立一個目錄默認權限爲755  系統保留022
文件默認644  系統保留022  內核再減111
6.umask
umask  系統建立文件時默認保留的權力
umask  077                                    ##臨時設定系統預留權限爲077

永久更改umask 
vim /etc/profile                               ##修改系統配置文件,將62行022改爲077                         

 59    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 60        umask 002
 61    else
 62        umask 077   

             
vim  /etc/bashrc                            ##修改系統配置文件,將73行022改爲077

 70     if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 71        umask 002
 72     else
 73        umask 077

重啓配置文件,使其生效

source etc/profile

source /etc/bashrc

7.特殊權限
1).sticky                                        ###粘制位
作用:只針對目錄生效,當一個目錄上有sticky權限時在這個目錄中的文件
     只能被文件的所有者刪除
設定方式:chmod  o+t   dir
                   chmod   1xxx  dir


2).sgid                                           ###強制位
作用:
對文件:只針對於二進制可執行文件,當文件上有sgid時任何人執行此文件
     產生的進程都屬於文件組
對目錄:當目錄上有sgid權限時任何人在此目錄中建立的文件都屬於目錄的所有組
設定方式: chmod  g+s  file|dir
                    chmod  2xxx file|dir


3).suid                                           ###冒險位
       只針對於2進制可執行文件,當文件上有suid時任何人執行這個文件中記錄的程序產生的進程都屬於文件的所有人
設定方式:  chmod  u+s  file
                     chmod  4xxx file

8.acl權限列表
1).作用:讓特定的用戶對特定的文件擁有特定的權限
 
  -rw-rwxr--+ 1 root root 0 Jul 21 15:45 file
                  ^
              acl開啓

2).  getfacl file              ##查看acl開啓的文件的權限
                    

# file: file                                                 ##文件名稱
# owner: student                                   ##文件擁有者
# group: root                                         ##文件擁有人的權限
# flags: s--                                             ##指定用戶的權利
user::r-x                                                ##文件擁有組的權力
group::r--                                              ##能賦予用戶的最大權力伐值
other::--x                                              ##其他人的權限

 

3). acl列表的管理
setfacl -m u:username:rwx file               ##設定username對file擁有rwx權限

setfacl -m g:group:rwx file                     ##設定group組成員對file擁有rwx權限


setfacl -x u:username  file                     ##從acl列表中刪除username   


setfacl -b  file                                          ##關閉file上的acl列表

4).mask值
在權限列表中mask標示能生效的權力值
當用chmod減小開啓acl的文件權限時mask值會發生改變
chmod g-w westos

如果要恢復mask值
setfacl -m m:rw westos

5).acl的默認權限設定
acl默認權限只針對目錄設定
「acl權限只針對完成之後新建立的文件或目錄生效,而已經存在的文件是不會繼承默認權限」  
setfacl -m d:u:student:rwx /mnt/westos