1. 程式人生 > >linux-許可權設定

linux-許可權設定

  1. 為什麼需要許可權管理

    計算機資源有限,我們需要合理的分配計算機資源。
    Linux是一個多使用者系統,對於每一個使用者來說,個人隱私的保護是十分重要的。由於Linux的一切皆檔案的基本思想,對於許可權的管理更多的則體現在管理檔案許可權上。為了方便的指派許可權,在Linux中定義了檔案屬主,檔案屬組,其他人這三類人的許可權。
    對於計算機來說,這三類都是一個識別符號。

  2. 檔案的許可權

通過 ls 命令我們可以看到檔案的具體許可權資訊。

drwxrwxr-x 2 wa wa 2020 Sep 27 15:29 .
drwxrwxr-x 5 wa wa 2020 Sep 227 16:38 …
-rw-rw-r-- 1 wa wa 0 Jun 5 02:29 file

將檔案的具體許可權可以分成八個內容來看

d	|	rwxrwxr-x| 2	| wa	| wa|	  2020|	 Sep2715:29 |	file
[1]		[2]			[3]	  [4]	  [5]	[6]			[7]			[8]

[1]檔案的型別

-  ##空文字	
d  ##目錄
l  ##軟連線
s  ##socket套接字
b  ##block塊裝置
c  ##字元裝置

[2]檔案許可權資訊
rwx |rwx |r-x
檔案許可權資訊一共有9位,每3位一組,分別表示屬主,屬組,其他人的許可權資訊

許可權:r w x
在這裡插入圖片描述
對於檔案:
r:可讀,可以使用cat等命令檢視檔案內容
w:可寫,可以進行編輯修改,或刪除操作
x:可執行,可以在命令提示符下當做命令提交給核心執行

對於目錄:
r:可以對此目錄執行ls命令,列出內部所有檔案
w:可以在此目錄下建立檔案
x:可以使用cd命令切換進此目錄,也可以使用ls -l命令檢視內部檔案的詳細資訊
對於目錄來說,一般會有執行許可權,而對於檔案來說,一般預設沒有執行許可權。
[3]
對檔案:檔案硬連結個數
對目錄:目錄中子目錄的個數(不是檔案)
[4]
檔案所屬人
[5]
檔案所屬組
[6]
對檔案:檔案的大小
對目錄:目錄中子檔案元資料的大小
[7]
檔案內容被修改時間
[8]
檔名稱
修改檔案的所有人和所有組

chown		username	file|dir  修改使用者
chown		user.group	file|dir 修改組
chown	-R  user.group	dir

chgrp		group		file|dir
charg	-R	group		dir

在這裡插入圖片描述
在這裡插入圖片描述
示例:
修改檔案的許可權的方式

chmod	<u|g|o><+|-|=><r|w|x>		file|dir

有一種比較方便的修改方法,直接加二進位制數字。

|r |w |x
4   2   1
chomd    542   file    ##意思就是 u(r-x) g(r--) o(-x-)

在這裡插入圖片描述

  1. umask 系統建立時預設保留的權力

       當你建立一個新的檔案或目錄時,該檔案或目錄有預設許可權。umask的分數指的是該預設值需要減掉的許可權,在預設許可權的屬性上,目錄與檔案是不一樣的,檔案最大的許可權是666,目錄最大許可權是777。

  • 臨時修改:umask值

     	umask 077          ##臨時設定系統預留許可權為077
    
  • 永久修改:umask值

		vim /etc/profile 		 ##永久修改每個使用者建立檔案的umask值(系統配置檔案) 
    	vim /etc/bashrc			 ##永久修改bash裡建立檔案的umask值(shell配置檔案)
   	    source /etc/profile  	 ##讓更改立即生效
   		source /etc/bashrc

注意:想要永久性的修改umask值,一定要重新讀取倆個配置檔案後,才能生效。

  1. 特殊許可權
  • sticky粘制位
    作用:
           只針對目錄生效,當一個目錄上有sticky許可權時,所有使用者在該目錄下均可建立檔案,但只有檔案所有人刪除該目錄下的檔案。
    設定方式:
		   chmod o+t  dir
		   chmod 1xxx  dir(1777)
  • sgid 強制位

作用:
       對檔案:只針對二進位制可執行檔案,當檔案上有sgid時,任何人執行此檔案產生的程序都屬於檔案的組
對目錄:當目錄上有sgid時,任何人在此目錄中建立的檔案都屬於目錄的所有組
設定方式:

 		chmod g+s  file|dir
   		chmod 2xxx file|dir
  • suid 冒險位
    作用:
           只針對二進位制可執行的檔案,當檔案上有suid時任何人執行這個檔案中的程式產生的程序都屬於檔案的所有人。
    設定方式:
			chmod u+s  file
   			chmod 4xxx file
  1. 檔案訪問控制列表 ACL
  • 作用:
           讓特定的使用者對特定的檔案擁有特定的許可權
  • acl列表檢視
    -rw-rwxr–+ 1 root root 0 Oct 1 11:11 file
  • acl開啟
	getfacl	 file   	 ##檢視acl開啟的檔案的許可權
	file:file			 ##檔名稱
	owner: root 		 ##檔案所有者
	group:root			 ##檔案所有組
	user ::rw-   		 ##檔案所有人的許可權
	user:tom:rwx  		 ##指定使用者的許可權
	group::r--  		 ##檔案所有組的許可權
	mask::rwx     		 ##能賦予使用者的最大權力閾值
	other::r--     	 ##其他人的許可權
  • acl列表的管理

    setfacl -m u:username:rwx file ##設定username對file擁有rwx許可權
    setfavl -m g:group:rwx file ##設定的group組成員對file擁有的rwx許可權

  • mask值

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

		 chmod g-w westos     ##看到減掉的mask值

恢復mask值:

		setfacl -m m:rwx westos   (westos是組)
  • acl預設許可權只針對目錄設定

     	setfacl -m d:u:student:rwx/mnt/westos
    

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