1. 程式人生 > >Linux中文件權限管理

Linux中文件權限管理

dff 技術 冒險位 cnblogs 詳細 facl bad 如果 chgrp

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

2 文件權限的查看
ls -l file ##查看文件的屬性、大小等詳細信息
ll file ##同上
技術分享圖片
ls -d ##列出目錄或文件本身,而不是目錄或文件的內容
ls -ld file ##組合使用,更加詳細
ll -d file ##同上
技術分享圖片

3.文件權限讀取內容解釋
示例為目錄文件
技術分享圖片

[1] : 文件的類型
相似的參數類型

  • ##空文件
    d ##目錄
    l ##軟鏈接
    s ##socket 套接字 相當於門 一個出口或者入口
    b ##block 塊設備
    c ## 字符設備

    文件的訪問權限
    [2] rwx [u] 文件擁有者對文件的權限 7
    [3] r-x [g] 文件所有組對文件的權限 5
    [4] r-x [o]除去擁有者、所有組其他的對文件的權限 5
    r:表示文件可以被讀 w:文件可以寫入 x:文件可以被執行

    rwx r=22=4 w=21=2 x=2*0=1 rwx=7 rw=6 rx=5 wx=3

[5] 文件: 被寫入次數
目錄: 子目錄的個數

[6]文件所屬的用戶

[7]文件所屬的用戶組

[8]占用磁盤的大小

[9]修改時間

[10]文件名稱

4.chown命令
改變文件的所有者和所在組
chown user.group file|dir ##改變文件或目錄的所有者和組

技術分享圖片
技術分享圖片

chown -R user.group dir ##遞歸改變目錄的所有者和組

技術分享圖片

5.chgrp命令
更改目錄或文件的組
chgrp group file|dir ##改變文件或目錄的組
技術分享圖片

chgrp -R group dir ##遞歸改變目錄的組

技術分享圖片

6.權限的理解
上面說道rwx具體代表的權限,對文件與目錄的效果是不一樣。
r:對文件:是否可以查看文件中的內容 --->cat file
對目錄:是否可以查看目錄中有什麽字文件或者子目錄 ---> ls dir

w:對文件:是否可以改變文件裏面記錄的字符
對目錄:是否可以對目錄中子目錄或子文集的元數據進行更改

x:對文件:是否可以通過文件名調用文件內記錄的程序

對目錄:是否可以進入目錄

7 chmod命令
更改目錄文件權限的命令
技術分享圖片
chmod (u|g|o)(+|-|=)(r|w|x) file|dir ##更改文件或目錄的權限
chmod u+x /dir/file ##增加文件所有者的執行權限

技術分享圖片

chmod g-w /dir/file ##減少文件所在組的寫入權限

技術分享圖片

chmod ugo+rwx /dir/file ##增加文件所有者、所在組、其它用戶的讀、寫入、執行的權限

技術分享圖片

chmod u=rw,g=wx,o=rwx /dir/file ##賦予所有者rw權限、所在組wx權限、其他用戶rwx權限

技術分享圖片

chmod 0755 dir/file ##更改u的權限為rwx、g的權限為rx、o的權限為rx
0:是否為目錄,0為否,1為是

技術分享圖片

將檔案 file1設為所有人皆可讀取 :

chmod a+r file1

技術分享圖片

將檔案 file1 與 file2設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入 :

chmod ug+w,o-w file1.txt file2.txt

技術分享圖片

文件權限755

1、第一位7,代表文件所有者擁有的權限為可讀(4)+可寫(2)+可執行(1)

2、第二位5,代表文件所有者同組用戶的權限為可讀(4)+不可寫(0)+可執行(1)

3、第三位5,代表公共用戶的權限為可讀(4)+不可寫(0)+可執行(1)

!!!!!!!!註意chmod +w 默認只加文件所有者即u的寫入權限,因為該權限較為重要。

8.umask
什麽是umask

當我們登錄系統之後創建一個文件總是有一個默認權限的,那麽這個權限是怎麽來的呢?這就是umask幹的事情。umask設置了用戶創建文件的默認 權限,它與chmod的效果剛好相反,umask設置的是權限“補碼”,而chmod設置的是文件權限碼。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中設置umask值。

umask是設置限制新文件權限的掩碼,效果與chmod的效果剛好相反
umask的值越大,獲得的權限越少,系統越安全

即時修改
umask xxx 即時修改生效

技術分享圖片

這裏umask設置的077 創建出來後的的文件權限卻為600

umask 命令允許你設定文件創建時的缺省模式,對應每一類用戶(文件屬主、同組用戶、其他用戶)存在一個相應的umask值中的數字。對於文件來說,這一數字的最 大值分別是6。系統不允許你在創建一個文本文件時就賦予它執行權限,必須在創建後用chmod命令增加這一權限。目錄則允許設置執行權限,這樣針對目錄來 說,umask中各個數字最大可以到7。

(https://www.cnblogs.com/zhangchengxiang/p/5196439.html) 這裏加個博客對umask的理解

永久修改
vim /etc/profile ##系統配置文件修改
vim /etc/bashrc ##shell配置文件修改
修改方式:用 vim 運行上述配置文件
末行模式鍵入/umask 高亮顯示
找到 if[ $UID -gt 199 ] && ["id -gn" = "id -un"]; then
umask 002 ##普通用戶的umask
else
umask 077 ##root的umask
fi
修改完畢:wq 退出保存

技術分享圖片
技術分享圖片

註意:不會立即生效

需要鍵入:

source /etc/profile
source /etc/bashrc
才會生效

!在超級用戶下創建的文件權限被默認更改
技術分享圖片

!在普通用戶下創建的文件權限被默認更改
技術分享圖片

9.acl權限列表
作用:讓特定用戶對特定的文件擁有特定權限

acl列表的查看

drwx------+ 2 root root 6 Mar 28 03:19 /mnt/file

# file: mnt/file ##文件名稱
# owner: root ##文件擁有者
# group: root ##文件擁有組**
user::rwx ##文件擁有者的權限
user:student:rwx ##制定用戶的權限
group::--- ##文件擁有組的權限
mask::rwx ##能賦予用戶的最大權力伐值
other::--- ##其他人的權限
註意:acl開啟時權限末尾會出現"+"

acl列表相關命令
getfacl file ##查看文件的acl列表
目錄和文件的acl列表展示:
技術分享圖片
setfacl -m u:username:rwx file ##設定username用戶對file擁有rwx權限
(對用戶老張增加rwx的權限)
技術分享圖片

setfacl -m g:group:rwx file ##設定group組成員對file擁有rwx權限
(使該組對文件file擁有rwx的權限)
技術分享圖片

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

技術分享圖片
setfacl -b file ##關閉file上的acl列表

(關閉剛才對acl列表的設定 )
技術分享圖片

10.mask值

在權限列表中mask表示能生效的權力值,當用chmod減小開啟acl的文件權限是mask值會發生改變
即用了chmod g-w file
如果要恢復mask值
setfacl -m m:rw file

11.acl的默認權限設定
acl默認權限只針對目錄設定
acl權限只針對設定完成之後信件裏的文件或目錄身生效,而已經存在的文件是不會繼承默認權限。

setfacl -R -m u:student:wx /mnt/test 對之前目錄下存在的文件賦予其權限
(對oop1下的文件file2用戶權限為wx)
技術分享圖片

setfacl -m d:u:student:rwx /mnt/test 對目錄之後創建的文件賦予其權限

技術分享圖片

oop1下新建file3用戶老張的權限為rwx
技術分享圖片

setfacl -k /oop1/file3

技術分享圖片

12.特殊權限

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

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

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

Linux中文件權限管理