Linux(RadHat)基礎學習—文件權限
阿新 • • 發佈:2018-07-27
chgrp 訪問 用戶權限 文件屬性 vpd 冒險位 images ont use
文件權限的意義:系統最底層安全設定方法之一,保證文件可以被可用的用戶作相應操作
1.文件屬性的查看
ls -l filename 等同於 ll filename (文件屬性)
ls -ld dir 等同於 ll -d dir (目錄屬性)
-|rw-r--r--.|1| root| root| 46 |Oct 1 05:03 |filename
1 2 3 4 5 6 7 8
1. "-"部分:文件類型
- ##空文件,普通文本文件 d ##目錄w c ##字符設備:顯示字符設備,接收字符屬出。 s ##套接字 socket:“接口/門”,程序提供對外交互的一個"門"文件,後綴sock p ##管道 b ##快設備 block: l ##軟連接:”快捷方式“ (ln file11 file2 把文件file1鏈接到file2)
2."rw-r--r--"部分:文件讀寫權限
rw-|r--|r--
(1) (2) (3)
(1)【user】文件所有者的權限,對文件所能做的那些操作
(2)【group】文件所有組的權限
(3)【other】其他人的權限
3."1"部分:
文件硬連接個數 對文件:文件內容被系統記錄的次數() 同一個文件通過鏈接產生另一個文件,雖然文件名字不同,但這兩個文件其實是同一個文件,可以看到其文件id一樣。這樣文件的硬鏈接個數變成了2。 對目錄:目錄中文件屬性的字節數(目錄中子文件的元數據【文件屬性】大小):7+文件名字字符數
4."root"部分:
文件所有人
5."root"部分:
文件所有組
6."46"部分:
文件內容的大小
7."Oct 1 05:03"部分:
文件的內容最後一次被修改的時間,不包括其文件權限的修改
8."filename"部分:
文件名字
2.文件所有人所有組的管理
chown:更改文件/目錄所有者 chown username file|dir ##更改文件的所有人 chown username.groupname file|dir ##更改所有人所有組(把.換成:也可以) chown -R username dir ##更改目錄本身及裏面所有內容的所有人 chgrp:更改文件/目錄所有組 chgrp groupname dir ##更改目錄/文件的所有組 chgrp -R groupname dir ##更改目錄本身及裏面所有內容的所有組
監控命令
watch -n 刷新時間 命令
watch -n 1 ls -lR /mnt 在監控頁面每間隔1s重新執行 ls -lR /mnt
3.文件普通權限
rw-|r--|r--
u g o
r :有讀取權限 w:有寫入權限 x:有執行權限
u部分(user):文件所有人對文件可以讀寫
g部分(group):文件組成員對文件可讀
o部分(other):其他人對文件可讀
權限詳解
1.r(讀)
對文件:可以查看文件中的字符
對目錄:可以查看目錄中文件的信息
2.w(寫)
對文件:可以更改文件內記錄的字符。
對目錄:可以在目錄中子目錄或子文件的元數據(子目錄、子文件)進行更改,對子目錄、子文件的寫即是對目錄、文件的重命名,刪除等操作
3.x(執行權限)
對文件:可以運行文件內記錄的程序動作。執行、運行文件
對目錄:可以進入目錄中
4.修改該文件權限
1.字符方式修改權限
格式:chmod [-R] <u|g|o><+|-|=><r|w|x> file|dir
chmod u-x file1 文件file1擁有者去掉x權限
chmod g+w file1 文件 file1擁有組添加w權限
chmod u-x,g+w file1 文件 file1擁有者去掉x權,file1擁有組添加w權限
chmod u+rwx 文件 file1擁有著加讀寫執行權限
chmod ugo-r file2 文件 file2的用戶組其他人去掉r權限
chmod ug+x,o-r file3 文件 file3用戶和組添加x權限,其他人去掉r權限
chmod +r file1 文件file1對所有的用戶增加讀權限
chmod g=rx file1 不管之前文件所有組的權限如何,使file1所有組權限變成讀、執行
2.數字方式修改該文件權限
文件權限數字表示方式
小科普:在linux文件權限表示中
r=4 (2的2次方)
w=2 (2的1次方)
x=1 (2的0次方)
-=0(-表示沒有對應權限,故為0)
舉個栗子:
rw-|r--|r--
u g o
u=rw-=4+2+0=6
g=r--=4+0+0=4
o=r--=4+0+0=4
所以文件權限表示為644
命令:chmod 修改後權限值 file
chmod 777 file --------> 該文件權限全部開放
7=rwx
6=rw-
5=r-x
4=r--
3=-wx
2=-w-
1=--x
0=---
5.系統默認權限的設定(umask)
從系統存在角度來說,開放權力越大,系統存在意義越高
從系統安全角度來說,開放權力越少,系統安全性越高
所以系統設定新建文件或目錄會去掉一些權限
設定方式:
umask 查看系統保留權限默認為022
umask 077 修改該系統保留權限為077,此設定為臨時設定,只當前shell中生效
永久設定方式:
編輯文件:vim /etc/bashrc
70 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
71 umask 002 -----------> 普通用戶umask
72 else
73 umask 077 -----------> 超級用戶umask
74 fi
編輯文件:vim /etc/profile
59 if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
60 umask 002 ------------> 普通用戶umask
61 else
62 umask 077 ------------> 超級用戶umask
63 fi
以上兩個文件umask設定值必須保持一致!
讓設定立即生效:
source /etc/bashrc
source /etc/profile
6.特殊權限
1.sticky 粘制位
只針對目錄生效,當一個目錄上有sticky權限時,在這個目錄中的文件只能被其所有者刪除。
設定方式:
chmod o+t 目錄
t = 1,故又可以:
chmod 1xxx 目錄
2.sgid 強制位(只針對二進制可執行文件)
對目錄:
對文件:只針對二進制可執行文件,
當文件有sgid權限時,任何人執行此文件產生的進程都屬於該文件的文件所有組,和程序發起人組的身份無關
對目錄:
當目錄有sgid權限後,目錄中新建的所有文件的所有組,都自動歸屬到目錄的所有組之中,和文件建立者所在的組無關
設定方式:
chmod g+s file/dir
s = 2,故還可以:
chmod 2xxx file/dir(xxx代表文件的普通權限數值)
進程查看:ps ax -o comm,user,group | grep watch
3.suid 冒險位置
只針對與二進制的可執行文件,當文件上有suid時,任何人執行這個文件,程序產生的進程都屬於該文件所有人,即以文件所有者的身份運行該文件。用於程序執行中權力的提升或者下降。
設定方式:
chmod u+s file
s = 4,故還可以
chmod 4xxx file (xxx代表文件的普通權限數值)
7.acl列表
1.acl定義
acl = access control (訪問控制)
指定特殊用戶對特殊文件有特殊權限
drwxrwx---+ 2 root root 17 Jul 18 01:39 /westos/
^
這個‘x‘表示/westos目錄時設置有訪問控制列表
查看文件是否有acl列表:
getfacl /westos/
# file: westos/ ##文件名稱
# owner: root ##文件所有人
# group: root ##文件所有組
user::rwx ##擁有者權限
user:student:rwx ##特殊用戶權限
group::r-x ##文件所有組權限
mask::rwx ##權限掩碼(能賦予用戶的最大權力伐值)
other::r-x ##其他人權限
註意:當文件上有權限列表時,ls -l 能看到的權限是不真實的
2.設定acl列表
setfacl -m <u|g>:<username|groupname>:權限 文件|目錄
-m #設定
u #用戶
g #組
舉2個栗子: setfacl -m u:student:rwx ./westos(擁有全部權限)
setfacl -m u:student:0 /bin/watch (0表示沒有任何權限)
3.刪除acl列表中的用戶或者組
setfacl -x <u|g>:<username|groupname> 文件|目錄
-x #刪除(從acl列表中刪除某個用戶/用戶組)
4.關閉acl列表
setfacl -b 文件|目錄
-b #關閉文件上的acl列表
5.acl mask
mask:權限掩碼(表示能生效的權力值)
mask用來標實能夠賦予用戶最大權限閥值
當存在acl列表時,用chmod減小acl的文件權限時mask值可能會發生改變
修復文件mask值:
setfacl -m m:rwx 文件名稱
6.acl 默認權限設定
當我們需求某個目錄對於student可寫,並且目錄中新建的子目錄對student也可寫,此時就要設定默認默認權限
註意: acl權限只針對目錄設定,無法對文件進行設定。默認權限只對目錄中新建立的文件或者目錄生效,對已經建立的文件無效,對於目錄本身也無效
設定方式:
setfacl -m d:u:student:rwx /westos
8.限制超級用戶權限
chattr +i filename 限制超級用戶對文件進行操作
查看完整詳細權限:lsattr filename ( ls -l無法查看到的部分權限)
解除限制:chattr -i filename
Linux(RadHat)基礎學習—文件權限