【Linux學習筆記】Linux用戶和文件權限的深度剖析
🔥個人主頁:大白的編程日記
🔥專欄:Linux學習筆記
前言
文章目錄
- 【Linux學習筆記】Linux用戶和文件權限的深度剖析
- 前言
- 一. Linux權限管理
- 1.1 文件訪問者的分類(人)
- 1.2 文件類型和訪問權限(事物屬性)
- 二. 文件權限值的表示方法
- 2.1 file 指令
- 2.2 關于權限的總結
- 2.3 粘滯位
- 后言
哈嘍,各位小伙伴大家好!上期我們講了Linux基本指令及其分析(一) 今天我們講的是Linux基本指令及其分析(二)。話不多說,我們進入正題!向大廠沖鋒!
一. Linux權限管理
1.1 文件訪問者的分類(人)
- 文件和文件目錄的所有者:u—User(中國平民法律問題)
- 文件和文件目錄的所有者所在的組的用戶:g–Group(不多說)
- 其它用戶:O–Others(外國人)
1.2 文件類型和訪問權限(事物屬性)
- 文件類型:
d:文件夾
-:普通文件
l:軟鏈接(類似Windows的快捷方式)
b:塊設備文件(例如硬盤、光驅等)
p:管道文件
c:字符設備文件(例如屏幕等串口設備)
s:套接口文件 - 基本權限:
讀(r/4):Read對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限
寫(w/2):Write對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限
執行(x/1):execute對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限
“—”表示不具有該項權限
二. 文件權限值的表示方法
-
字符表示方法
-
8進制數值表示方法
文件訪問權限的相關設置方法 -
chmod
功能: 設置文件的訪問權限
格式: chmod[參數]權限文件名
常用選項: -
R->遞歸修改目錄文件的權限
-
說明:只有文件的擁有者和root才可以改變文件的權限
chmod命令權限值的格式: -
用戶表示符+/-=權限字符
+:向權限范圍增加權限代號所表示的權限
-:向權限范圍取消權限代號所表示的權限
=:向權限范圍賦予權限代號所表示的權限
用戶符號:
u:擁有者
g:擁有者同組用
o:其它用戶
a:所有用戶
實例: -
chmod u+w /home/abc.txt
-
chmod o-x /home/abc.tx2t
-
chmod a=x /home/abc.txt
-
三位8進制數字
實例: -
chmod 664 /home/abc.txt
-
chmod 664 /home/abc.txt
-
chown
功能: 修改文件的擁有者
格式: chown [參數] 用戶名文件名
實例: -
chown userl f1
-
chown -R userl filegroupl
- chgrp
功能: 修改文件或目錄的所屬組
格式: chgrp[參數]用戶組名文件名
常用選項:-R遞歸修改文件或目錄的所屬組
實例:chgrp users /abc/f2
- umask
功能:
- 查看或修改文件掩碼
- 新建文件夾默認權限=0666
- 新建目錄默認權限=0777
- 但實際上你所創建的文件和目錄,看到的權限往往不是上面這個值。原因就是創建文件或目錄的時候還要受到umask的影響。假設默認權限是mask,則實際創建的出來的文件權限是:mask&~umask
格式: umask 權限值
說明: 將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為
0022,普通用戶默認為0002。
實例: umask 755
umask //查看
umask 044//設置
2.1 file 指令
功能說明: 辨識文件類型。
語法: file[選項]文件或目錄…
常用選項:
- c:詳細顯示指令執行過程,便于排錯或分析程序執行的情形。
- z:嘗試去解讀壓縮文件的內容。
(1)修改/etc/sudoers文件分配文件
# chmod 740 /etc/sudoers# vi /etc/sudoer
$ sudo –u ??名 命令
實例:
$ sudo -u root /usr/sbin/useradd u2
目錄的權限
- 可執行權限:如果目錄沒有可執行權限,則無法cd到目錄中,
- 可讀權限:如果目錄沒有可讀權限,則無法用s等命令查看目錄中的文件內容,
- 可寫權限:如果目錄沒有可寫權限,則無法在目錄中創建文件,也無法在目錄中刪除文件。
于是,問題來了~~換句話來講,就是只要用戶具有自錄的寫權限,用戶就可以刪除目錄中的文件,而不論這個用戶是否有這個文件的寫權限.
這好像不太科學啊,我張三創建的一個文件,憑什么被你李四可以刪掉?我們用下面的過程印證一下.
[root@localhost ~]$ chmod 0777 /home/[root@localhost ~]$ ls /home/ -ld
drwxrwxrwx. 3 root root 4096 9
?19 15:58 /home/[root@localhost ~]$ touch /home/root.c[root@localhost ~]$ ls -l /home/
總?量4-rw-r--r--. 1 root root
0 9
?19 15:58 abc.cdrwxr-xr-x. 27 litao litao 4096 9
?19 15:53 litao-rw-r--r--. 1 root root
[root@localhost ~]$ su - litao0 9
?19 15:59 root.c[litao@localhost ~]$ rm /home/root.c #litao
可以刪除
root
創建的?件rm
:是否刪除有寫保護的普通空?件"/home/root.c"
?
y[litao@localhost ~]$ exit
logout
為了解決這個不科學的問題,Linux引如了粘滯位的概念
2.2 關于權限的總結
- 目錄的可執行權限是表示你可否在目錄下執行命令。
- 如果目錄沒有-x權限,則無法對目錄執行任何命令,甚至無法cd進入目,即使目錄仍然有-r讀
權限(這個地方很容易犯錯,認為有讀權限就可以進入目錄讀取目錄下的文件) - 而如果目錄具有-x權限,但沒有-r權限,則用戶可以執行命令,可以cd進入目錄。但由于沒有
目錄的讀權限 - 所以在目錄下,即使可以執行Is命令,但仍然沒有權限讀出目錄下的文檔。
2.3 粘滯位
[root@localhost ~]$ chmod + t / home / # 加上粘滯位
[root@localhost ~]$ ls - ld / home /
drwxrwxrwt. 3 root root 4096 9月
19 16:00 / home /
[root@localhost ~]$ su - litao
[litao@localhost ~]$ rm / home / abc.c #litao不能刪除別?的?件
rm:是否刪除有寫保護的普通空?件"/home/abc.c"?y
rm :?法刪除"/home/abc.c" :不允許的操作
當一個目錄被設置為"粘滯位"(用chmod+t),則該目錄下的文件只能由
- 超級管理員刪除
- 該目錄的所有者刪除
- 該文件的所有者刪除
后言
這就是Linux基本指令及其分析。大家自己好好消化!今天就分享到這! 感謝各位的耐心垂閱!咱們下期見!拜拜~