天天看點

linux系統中的權限設定

檔案權限存在的意義

檔案權限的存在是系統最底層安全設定方法之一,保證檔案可以被可用的使用者做相應操作
           

檔案權限的檢視

ls -l file 	 檢視檔案資訊
ls -ld dir 	 檢視目錄本身資訊
ll file 	 相當于ls –l file
ll -d dir 	 相當于ls -ld dir
ls –LR dir 	 遞歸顯示子目錄
           

(1) ls -l file ##使用此指令檢視檔案的屬性以及權限

linux系統中的權限設定

(2) ls -ld dir ##使用此指令檢視目錄的屬性以及權限

linux系統中的權限設定

(3) ll file ##檢視檔案的屬性

linux系統中的權限設定

(4) ll -d dir ##檢視目錄的屬性

linux系統中的權限設定

(5) ls –LR dir ##遞歸顯示子目錄

linux系統中的權限設定

(6) ls –lR dir 可以遞歸檢視目錄下的所有目錄、檔案以及目錄下的檔案

linux系統中的權限設定

檔案屬性的檢視

- | rw-r--r--|1|root|root| 32 |Oct 8 02:48 |filename
 1       2	   3   4    5    6       7            8     
           

(1)檔案類型

- 	  空檔案,或者文本
d 	  目錄
l 	 軟連結,相當于快捷方式
s 	 socket套接字(一個程式對外開放的門)
b 	 block塊裝置
c 	 字元裝置
           
linux系統中的權限設定
linux系統中的權限設定
linux系統中的權限設定
s 表示套接字(socket)   是程式的一扇門 ,進入這扇門内部才能進入程式内部和程式交流
b 表示塊裝置(block)
           

c表示字元裝置

linux系統中的權限設定
(2)  檔案的權限:(檔案權限共9位,分為3部分)
| rw- |rw- | r–| 三位為一位,分别代表的是user,group,other(簡寫為u,g,o)
u:檔案擁有者對檔案能做什麼操作(所有人)
g:檔案所有組對檔案能做什麼操作(所有組)
o:其他人對檔案能做什麼操作(其它人)
           

(3)檔案内容被系統記錄的次數:“1”(硬連結)

對檔案 檔案内容被系統記錄的次數(檔案硬連結個數)
對目錄 目錄中檔案屬性的位元組數(目錄中子目錄的個數)
linux系統中的權限設定

硬連結是有着相同 inode 号僅檔案名不同的檔案

linux系統中的權限設定

(4) 使用者名字:“root”(檔案的所有人)

(5) 使用者組名字:“root”(檔案的所有組)

(6) 檔案内容的大小

對檔案 檔案内容大小
對目錄 目錄中子檔案中繼資料(檔案屬性)大小

(7)檔案最後一次被修改的時間

(8)檔案的名稱

改變檔案的所有組和所有人

使用指令chown或者chgrp
           
chown username file或者dir 	更改檔案或者目錄的擁有者
chown user-group file或者dir 	更改檔案或者目錄的使用者和使用者組
chown -R user-group dir 	遞歸更改目錄的使用者和使用者組
           

準備工作

linux系統中的權限設定

(1)chown username file|dir ##更改檔案或者目錄的所有人

linux系統中的權限設定

(2)chown username.groupname file|dir ##更改檔案或者目錄的所有人所有組

linux系統中的權限設定

(3)chown -R username dir ##更改目錄本身及裡面所有檔案的所有人

linux系統中的權限設定
chgrp group file或者dir 	改變檔案或者目錄的使用者組
chgrp -R group dir 	遞歸改變目錄的使用者組
           
linux系統中的權限設定
linux系統中的權限設定

檔案普通權限

r w - | r - - | r - -
  u       g       o
           

表示:

u 檔案所有人對檔案可以讀寫
g 檔案組成員對檔案可讀
o 其他人對檔案可讀

r:

對檔案:可以檢視檔案中的字元

對目錄:可以檢視目錄中檔案的資訊

w:

對檔案:可以更改檔案内字元

對目錄:可以在目錄中添加删除檔案

x:

對檔案:可以運作檔案内記錄的程式動作

對目錄:可以進入目錄中

修改檔案的權限

chmod +(增權重限)or -(去掉權限)來改變權限
           

(1)chmod <u|g|o><+|-|=><r|w|x> file|dir 總的格式

linux系統中的權限設定

(2) chmod u-x file1 file1擁有者去掉x權限

linux系統中的權限設定

(3) chmod u+x,g-w file1 file1擁有者去掉x權,file1擁有組添加w權限

linux系統中的權限設定

(4) chmod ugo-r file2 file2的使用者、組、其他人去掉r權限

linux系統中的權限設定

數字方式修改檔案權限

例如:

u= r w - = 4+2+0=6

g= r - - = 4+0+0=4

o= r - - = 4+0+0=4

是以檔案權限表示為644

linux系統中的權限設定

系統預設權限的設定

從系統存在角度來說,開放權力越大,系統存在意義越高
從系統安全角度來說,開放權力越少,系統安全性越高
是以系統設定建立檔案或目錄會去掉一些權限
權限設定方式如下:
umask ##檢視系統保留權限預設為022
umask 077 ##修改該系統保留權限為077,此設定為臨時設定,隻目前shell中生效
           

永久設定方式:

vim /etc/bashrc ##設定shell中的權限

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

linux系統中的權限設定
linux系統中的權限設定
linux系統中的權限設定
以上兩個檔案umask設定值必須保持一緻
source /etc/bashrc
source /etc/profile
讓設定立即生效
           

檔案的通路控制(acl清單)

(1)acl定義: acl = access control list
指定特殊使用者對特殊檔案有特殊權限
           

(2) acl清單檢視

-rw-rwxr--+ 1 root root 0 Oct 21 15:45 file  出現“+”表示acl開啟
           
linux系統中的權限設定
getfacl file   #檢視acl開啟的檔案權限
#file: file #檔案名稱
#owner: root #檔案擁有者
#group: root #檔案擁有組
user::rw-  #檔案擁有人的權限
user:kiosk:rwx #指定使用者的權限
group::r-- #檔案擁有組的權限
mask::rwx #能賦予使用者的最大權力門檻值
other::r-- #其他人的權限
           
linux系統中的權限設定

(3) acl清單的管理

getfacl file
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 -x g:group file  #從acl清單中删除group組
setfacl -b file  #關閉file上的acl清單
           
linux系統中的權限設定
linux系統中的權限設定

(4) mask值

在權限清單中mask表示能生效的權限值
當用chmod減小開啟acl的檔案權限值時mask值會發生改變
chmod g-w westos
如果要恢複mask值
setfacl -m m:rw westos
           
linux系統中的權限設定
linux系統中的權限設定

(5) acl的預設權限設定

acl預設權限隻針對目錄設定
acl權限隻針對設定完成之後建立立的檔案或目錄生效,而已經存在的檔案不會繼承預設權限
setfacl -m d:u:student:rwx /mnt/westos
setfacl -k /mnt/westos
           
linux系統中的權限設定
linux系統中的權限設定
linux系統中的權限設定

特殊權限

1.sticky 粘制位

隻針對目錄有效,當一個目錄上有sticky權限時,這個目錄中的檔案隻能被檔案的所有者删除
設定方式:
chmod o+t direcotry
chmod 1777 direcotry
chmod 1xxx direcotry
           

(1) (1)先在超級使用者下建立一個目錄 mkdir /mnt/westos

然後設定監控指令j監控改目錄以及改目錄下的檔案:

watch -n 1 “ls -ld /mnt/westos ; ls -l /mnt/westos”

并且在超級使用者下設定滿權限 chmod 777 /mnt/westos

在超級使用者下建立兩個普通使用者leo westos

分别切換到兩個普通使用者下建立檔案file file1

linux系統中的權限設定

(2) westos使用者可以删除leo使用者建立的檔案file,這樣做很不安全

linux系統中的權限設定

(3) 在超級使用者模式下給westos這個目錄增加t權限

給westos目錄加上t權限以後,leo使用者就不能删除westos使用者建立的file1檔案了

linux系統中的權限設定

2.sgid 強制位

設定方式:
chmod g+s file|dir
chmod 2xxx file|dir
           
對目錄:當目錄上有sgid權限時任何人在此目錄中建立的檔案都屬于目錄的所有組
           

(1)首先在超級使用者下建立一個目錄 并且對這個目錄進行監控

linux系統中的權限設定

(2) 檢視這個目錄的權限

linux系統中的權限設定

(3)在超級使用者下建立一個新使用者,并且将建立目錄的使用者組變為剛剛建立的使用者 然後在改目錄下建立新的檔案,發現此檔案的使用者組仍然為超級使用者,

并不是剛剛 建立的那個使用者tom

linux系統中的權限設定

(4) 為了使在目錄中建立的檔案都屬于目錄的使用者組,需要在目錄上加上s權限

linux系統中的權限設定

由此可見,當給目錄加上s權限時,目錄的所有組權限會出現s,此時建立的檔案的所有組為目錄的所有組。

對檔案:隻針對二進制可執行檔案,當檔案上有s權限時任何人執行此檔案産生的程序都屬于檔案的所有組
           

(1)先監控二進制檔案的程序

linux系統中的權限設定

(2) 檢視該二進制檔案的權限

linux系統中的權限設定

(3) 以root身份啟動一個程序,這個程序的所有人和所有組均為root

然後将改檔案的所有組改為westos,發現并沒有改變,仍為root

linux系統中的權限設定

(4) 給二進制文進加上s權限,重新開啟一個新的程序 發現程序屬于檔案所有組

linux系統中的權限設定

3.suid 冒險位

作用:隻針對二進制可執行檔案,當檔案上有suid權限時任何人執行這個檔案中程式産生的程序都屬于檔案的所有人
設定方式:
chmod u+s file
chmod 4xxx file
           

(1) 監控二進制檔案的程序

linux系統中的權限設定

(2) 設定/bin/watch的使用者為student 執行watch指令發現程序所有人為root

linux系統中的權限設定
linux系統中的權限設定

(3)設定冒險位權限後,執行watch指令 發現程序的使用者屬于student

linux系統中的權限設定
linux系統中的權限設定

繼續閱讀