Linux下文件的權限管理

文件權限

1.文件權限存在的意義
系統最底層安全設定方法之一
保證文件可以被可用的用戶做相應操作
2.文件權限的查看

  • ls -l file #查看文件屬性
  • ll file #ls -l 的簡寫
    在這裏插入圖片描述
  • ls -ld dir #查看目錄本身屬性
  • ll -d dir
    在這裏插入圖片描述

3.文件權限的讀取
在這裏插入圖片描述

- r w -r - - r - - 1 root root 0 Jan 1 18:33 file
[1] [2] [3] [4] [5] [6] [7] [8]

【1】文件的類型

- 空文件或者文本
d 目錄
l 軟鏈接
s socket套接字1
b block塊設備
c 字符設備

【2】文件的權限
rw-|rw-|r–

第一列:rw- 【u】文件擁有這對文件能做什麼操作
第二列:rw- 【g】文件所有組對文件能做什麼操作
第三列:r– 【o】其他人對文件能做什麼操作

【3】
對文件:文件硬鏈接個數(文件內容被記錄的次數)
對目錄:目錄中子目錄的個數
【4】
文件所有人
【5】
文件所有組
【6】
對文件:文件大小
對目錄:目錄中子文件元數據(matedate可以理解爲文件的屬性)大小
【7】
文件的內容最後一次被修改的時間(文件內容改變纔會影響時間變化,文件屬性改變不會影響變化)
【8】
文件的名稱
4.如何讓改變文件的所有人和所有組
準備工作:在/mnt下創建file{1…5} 和目錄dir 在目錄dir中創建text{1…3}
通過watch -n 1 ls -lR /mnt 同時監控目錄mnt下文件和其子目錄dir下文件屬性
在這裏插入圖片描述

  • chown user file|dir #更改文件或目錄的所有人
    在這裏插入圖片描述
    在這裏插入圖片描述
    但是從上圖我們可以看出該命令在更改目錄所有人時,只能更改目錄本身所有人,對目錄子文件不會產生影響
  • chown -R user dir
    在這裏插入圖片描述

通過本命令可以使目錄本身及其子文件的所有人一同發生更改

  • chgrp group file|dir #更改目錄或文件的所有組
    在這裏插入圖片描述
    在這裏插入圖片描述
  • chgrp -R group dir #更改目錄及其子文件的所有組
    在這裏插入圖片描述
  • chown user.group file|dir #同時更改目錄或文件的所有人所有組(中間加“.“|“:“皆可)
    在這裏插入圖片描述
    在這裏插入圖片描述
  • chown -R user.group dir #同時更改目錄及其子文件的所有人所有組
    在這裏插入圖片描述

5.如何改變文件的權限
(1)對權限的理解
r:

對文件: 是否可以查看文件中的內容---->cat file
對目錄: 是否可以查看目錄中有什麼子文件或者子目錄---->ls dir

w:

對文件: 是否可以改變文件裏面記錄的字符
對目錄 是否可以對目錄中子目錄或子文件的元數據進行更改

x:

對文件: 是否可以通過文件名稱調用文件內記錄的程序
對目錄: 是否可以進入目錄

注意:目錄內的文件的權限,除了文件本身權限以外,還受其所在目錄權限影響!
(2)更改方式
我們仍然通過watch -n 1 ls -lR /mnt 同時監控目錄mnt下文件和其子目錄dir下文件屬性
在這裏插入圖片描述

  • chmod <u|g|o><+|-|=><r|w|x> file|dir
  • chmod u+x file|dir #給與文件所有人執行權限
    在這裏插入圖片描述
  • chmod g-r file|dir #取消文件所有組查看權限
    在這裏插入圖片描述
  • chmod ug-r file|dir #同時取消文件所有人所有組查看權限(相同指令可以合併)
    在這裏插入圖片描述
  • chmod u-r,g+x file|dir #取消文件所有人查看權限,給與文件所有組執行權限(不同指令用“,“分開)
    在這裏插入圖片描述
  • chmod -r file|dir #取消文件所有人所有組和其他人的查看權限
    在這裏插入圖片描述
    注意:只有w默認只更改文件所有人(u), r|x默認三方(ugo)全都修改
    在這裏插入圖片描述
    在這裏插入圖片描述
  • chmod o=rw- file|dir
    在這裏插入圖片描述

在這裏插入圖片描述

r w x
2^2 2^1 2^0
4 2 1
r - x r - - - - x
5 4 1
  • chmod 541 file|dir
    在這裏插入圖片描述

在這裏插入圖片描述

  • 7=r w x
  • 6=r w -
  • 5=r - x
  • 4=r - -
  • 3=- w x
  • 2=- w -
  • 1=- - x
  • 0=- - -

6.umask
umask 系統建立文件時默認保留的權力
umask 077 #領事設定系統預留權限爲077

永久的更改umask
vim /etc/profile #系統配置文件
在這裏插入圖片描述
umask 002 #普通用戶的umsak
umask 022 #超級用戶的umask

vim /etc/bashrc #shell配置文件

在這裏插入圖片描述

source /etc/profile #讓更改立即生效
source /etc/bashrc
7.特殊權限
(1)sticky #粘制位
作用:
只針對目錄生效
在這個目錄當中的文件只能被所有者刪除

設定方式:
chmod o+t dir
在這裏插入圖片描述
在這裏插入圖片描述
chmod 1xxx dir
在這裏插入圖片描述
(2)sgid #強制位
作用:

對文件: 只針對二進制可執行文件,當文件上有sigd時任何人執行此文件產生的進程都屬於文件的組
對目錄: 當目錄上有sigd權限時任何人在此目錄中建立的文件都屬於目錄的所有組

設定方式:
chmod g+s file|dir
在這裏插入圖片描述
chmod 2xxx file|dir

在這裏插入圖片描述
此時任何人在dir目錄創建的文件都屬於dir文件所有組我們可以先通過 chown student.student dir將dir文件的所有人所有組全變更爲student
在這裏插入圖片描述
然後我們切換到mack用戶在dir下創建文件text4
在這裏插入圖片描述
可以看到mack用戶新建的text4的所有組爲其目錄dir的所有組student
3.suid ##冒險位
只針對與2進制可執行文件
當文件上有suid時任何人執行這個文件中記的程序產生的進程都屬於文件的所有人

設定方式
chmod u+s file
在這裏插入圖片描述
chmod 4xxx file
在這裏插入圖片描述
8.acl權限列表
(1)作用:
讓特定的用戶對特定的文件擁有特定權限
(2)acl列表查看

在這裏插入圖片描述
" + "代表acl開啓
getfacl #查看acl開啓的文件的權限
在這裏插入圖片描述
file:file #文件名稱
owner:root #文件擁有者
group:root #文件擁有組
user::- - - #文件擁有人的權限
user:mack:rwx #制定用戶的權限
group::rwx #文件擁有組的權力
mask::rwx #能賦予用戶的最大權力閥值
other::- - - #其他人的權限
(3)acl列表的管理
getfacl file
setfacl -m u:username:rwx file #設定username對file擁有rwx權限 但是無法進行刪除指令
在這裏插入圖片描述
通過上圖中other::- - -我們可以看出其他人本來應該無法對file1文件進行讀寫操作的但是當acl權限開啓後 用戶mack就可以對file1文件進行讀寫操作
在這裏插入圖片描述
setfacl -m g:group:rwx file #設定group組成員對file擁有rwx權限 rwx可以777不行
在這裏插入圖片描述
由上圖可見other::- - - 其他人對file2無法進行讀寫操作只有生產組成員對file2有rwx權限
新建一個用戶tom屬於生產組
在這裏插入圖片描述
切換到tom用戶可以成功對file2進行讀寫
在這裏插入圖片描述
setfacl -x u:username file #從acl列表中刪除username
setfacl -b file #關閉file上的acl列表
(4)mask值
在權限列表中mask標示能生效的權力值
當用chmod減小開啓acl的文件權限時mask值會改變

chmod g-w file1
在這裏插入圖片描述
如果要恢復mask值
setfacl -m m:rwx file1
在這裏插入圖片描述
5. acl默認權限設定
acl默認權限只針對目錄設定
注意:acl默認權限只針對設定完成之後生成的文件或目錄生效,已經生成的不會受到影響(包括該文件本身)

setfacl -m d:u:username:rwx dir
在這裏插入圖片描述
#指定mack用戶對目錄dir擁有rwx權力,但是此時切換到mack是無法進入dir目錄的
在這裏插入圖片描述
這便是因爲acl默認權限只針對設定完成之後生成的文件或目錄生效,已經生成的不會受到影響(包括該牡蠣本身)所以需要對目錄本身進行指定acl權限
在這裏插入圖片描述
此時我們切換到mack用戶纔可進入dir目錄
在這裏插入圖片描述
setfacl -k dir #關閉默認權限
在這裏插入圖片描述


  1. 可以看成一個接口,默認情況下程序是封閉的而套接字就是一個程序對外開放的接口 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章