1. 程式人生 > >Linux下運用虛擬機器進行檔案操作

Linux下運用虛擬機器進行檔案操作

檔案許可權

檔案許可權存在的意義

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

檔案許可權的檢視

ls -l	file
ls -ld	dir
ll	file
ll -d	dir
-l用來檢視檔案 -d用來檢視目錄

在這裡插入圖片描述

檔案許可權的讀取

-  |rw-rw-r--| 1 | kiosk | kiosk | 0 | Jul 21 09:18 | file
[1]    [2]    [3]   [4]     [5]   [6]      [7]         [8]


[1]
檔案的型別
-	##空檔案,或者文字
d	##目錄
l	##軟連結
s	##套接字
b	##block塊裝置
c	##字元裝置

[2]
檔案的許可權
rw-|rw-|r--
 1   2   3

1.[u] 檔案擁有著對檔案能做什麼操作
2.[g] 檔案所有組對檔案能做什麼操作
3.[o] 其他人對檔案能做什麼操作

[3]
對檔案:檔案硬連結個數(檔案內容被記錄的次數)
對目錄:目錄中子目錄的個數

[4]
檔案所有人

[5]
檔案所有組

[6]
對檔案:檔案大小
對目錄:目錄中子檔案元資料(matedate可以理解為檔案的屬性)大小

[7]
檔案內容最後一次被修改的時間

[8]
檔案的名稱

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

chown|chgrp
使用者	組

chown		user		file|dir
chown	-R	user		dir		遞迴,使這個目錄和目錄裡的所有檔案和目錄的使用者都是user

chown		user:group	file|dir
chown	-R	user:group	dir	

chgrp		group		file|dir
chgrp	-R	group		dir
實驗前先在/mnt下建立幾個檔案和目錄,然後監控

在這裡插入圖片描述

用chown命令改變file1的使用者,改變dzh目錄和dzh下所有檔案的目錄

在這裡插入圖片描述

在這裡插入圖片描述

同時改變使用者和目錄使用chown命令,在使用者和目錄之間用:隔開

在這裡插入圖片描述
在這裡插入圖片描述

用chgrp命令改變檔案和目錄的組

在這裡插入圖片描述
在這裡插入圖片描述

如何改變檔案的許可權

對許可權的理解

r
對檔案:是否可以檢視檔案中的內容 -->cat file
對目錄:是否可以檢視目錄中有什麼子檔案或者子目錄 --> ls dir

w
對檔案:是否可以改變檔案裡面記錄的字元
對目錄:是否可以對目錄中子目錄或子檔案的元資料進行更改
x
對檔案:是否可以通過檔名稱呼叫檔案內記錄的程式
對目錄:是否可以進入目錄

更改方式

chmod <u|g|o><+|-|=><r|w|x>	file|dir
chmod u+x	/mnt/file1     	##給使用者對/mnt/file執行的權力
chmod g-r	/mnt/file2		##去除使用者組對/mnt/file讀的權力
chmod ug-r	/mnt/file3
chmod u-r,g+x	/mnt/file4
chmod -r	/mnt/file5
chmod o=r-x	/mnt/file6

rwx
210
r=4
w=2
x=1

r-x|r--|--x
 5   4   1

chmod 541 /mnt/file1	 	  ##給/mnt/file的使用者讀和執行的權力
								使用者組讀的權力,其他人執行權力

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

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

在這裡插入圖片描述

注意:寫的許可權比較特殊,如果-r,-x是對ugo同時進行,但是-w和+w只對u執行

在這裡插入圖片描述
在這裡插入圖片描述

umask

umask	系統建立檔案是預設保留的權力
umask	077	##臨時設定系統預留許可權為077

永久更改umask
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

vim /etc/bashrc		##shell配置檔案
70	if [ sUID -gt 199 ] && [ "'id -gn'" = "'id -un'" ]; then
71	   umask 002
72	else
73	   umask 077
74 	fi

source /etc/profile	##讓更改立即生效
source /etc/bashrc
用umask檢視超級使用者和普通使用者的預留許可權,在shell裡用umask進行臨時更改

在這裡插入圖片描述
在這裡插入圖片描述

用vim /etc/profile更改系統配置檔案,在60行更改普通使用者的umask,
在62行更改超級使用者的umask,更改結束後使用source命令讓更改立即生效。

在這裡插入圖片描述
在這裡插入圖片描述

用vim /etc/profile更改系統配置檔案,在71行更改普通使用者的umask,
在73行更改超級使用者的umask,更改結束後使用source命令讓更改立即生效。

在這裡插入圖片描述
在這裡插入圖片描述

特殊許可權

粘制位

1.sticky	##粘制位
作用:
	只針對目錄生效,當一個目錄上有sticky許可權時
	在這個目錄中的檔案只能被檔案的所有者刪除

設定方式:
	chmod o+t	dir
	chmod 1xxx	dir
注意:在上面的操作過程中,原本使用者2可以在/pub下刪除使用者1建立的檔案
但是對/pub設定了粘制位後,使用者2就不能在/pub下刪除使用者1建立的檔案了,
並且檢視/pub的屬性,在o上變成了rwt

在這裡插入圖片描述

強制位

2.sgid		##強制位
作用
	對檔案:		只針對與二進位制可執行檔案
			當檔案上有sgid時任何人執行此檔案產生的程序都屬於檔案的組
	對目錄:		
			當目錄上有sgid許可權時任何人在此目錄中建立的檔案的都屬於目錄的所有組

設定方式:
	chmod g+s	file|dir
	chmod 2xxx	file|dir
注意:針對目錄,原本使用者1在/pub下建立檔案,檔案的所有組是1,屬於1,
對/pub設定了強制位後,使用者1在/pub下建立檔案,檔案屬於/pub的組root
並且檢視/pub屬性,在g上變成了rws

在這裡插入圖片描述

對檔案:/bin/watch所屬的組是root,使用者1在執行/bin/watch時,產生程序的組屬於1
給/bin/watch加一個強制位,使用者1再執行/bin/watch時,產生的程序的組屬於root
並且檢視/bin/watch的屬性,g上變成了r-s

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

冒險位

3.suid		##冒險位
	只針對與2進位制可執行檔案
	當檔案上有suid時任何人執行這個檔案中的記的程式產生的程序都屬於檔案的所有人
設定方式
	chmod u+s file
	chmod 4xxx file
對檔案:/bin/watch所屬的使用者是root,使用者1在執行/bin/watch時,產生程序的使用者屬於1
給/bin/watch加一個冒險位,使用者1再執行/bin/watch時,產生的程序的使用者屬於root
並且檢視/bin/watch的屬性,u上變成了rws

在這裡插入圖片描述
在這裡插入圖片描述

如果要同時設定強制位和冒險位:chmod 6xxx file

acl許可權列表

作用

讓特定的使用者對特定的檔案擁有特定許可權

acl列表檢視

-rw-rwxr--+ root root 0 Jul 21 15:45 file
		  ^
		acl開啟   有+號代表acl許可權列表開啟

	getfacl file	##檢視acl開啟的檔案的許可權
	# file:	file	##檔名稱
	# owner: root	##檔案擁有者
	# group: root	##檔案擁有組
	user::rw-		##檔案擁有人的許可權
	user:kiosk:rwx	##指定使用者的許可權
	group::r--		##檔案擁有組的許可權
	mask::rwx		##能賦予使用者的最大權力閾值
	other::r--		##其他人的許可權

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 -b file		    	   ##關閉file上的acl列表

當權限列表開啟時,g代表對mask進行操作
chmod g-w file	許可權列表會發生錯誤
修改回來可以使用
setfacl -m m:rwx file

在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述

注意:注意:當檔案上有許可權列表時,ls -l能看到的許可權是假的

mask值

在許可權列表中mask表示能生效的許可權值
當用chmod減小開啟acl的檔案許可權時mask值會發生改變

chmod g-w file

注意,這個g不是代表組,而是更改mask的值,對ugo都有影響

如果要恢復mask值
setfacl -m m:rwx file

在這裡插入圖片描述
在這裡插入圖片描述

acl的預設許可權設定

acl預設許可權只針對目錄設定
“acl許可權只針對設定完成之後新建立的檔案或目錄生效,
而已經存在的檔案是不會繼承預設許可權”

setfacl -m d:u:user:rwx /mnt/dzh
setfacl -k /mnt/dzh