Linux中文件權限管理
系統最底層安全設定方法之一
保證文件可以被可用的用戶做相應操作
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中文件權限管理