Linux學習之十四 Linux檔案和目錄許可權

2022-05-21 20:06:37 字數 4308 閱讀 1405

linux檔案和目錄許可權

在linux中的每乙個檔案或目錄都包含有訪問許可權,這些訪問許可權決定了誰能訪問和如何訪問這些檔案和目錄。

通過設定許可權可以從以下三種訪問方式限制訪問許可權:只允許使用者自己訪問;允許乙個預先指定的使用者組中的使用者訪問;允許系統中的任何使用者訪問。

linux中一切皆檔案,關於檔案的許可權所有者分為使用者,使用者組,其他三類,許可權的類別分為r(可讀)、w(可寫)、x(可執行)三種,其分別對應的許可權數值為4、2、1

修改許可權的命令為chmod,修改所屬者的命令為chown

模擬環境:

建立使用者組abc

建立使用者a並指定使用者組abc

建立使用者b並指定使用者組abc

建立其他使用者test,不指定使用者組

檢視建立的使用者

[root@localhost ~]# groupadd abc

[root@localhost ~]# useradd -g abc a

[root@localhost ~]# useradd -g abc b

[root@localhost ~]# useradd test

[root@localhost ~]# tail -3 /etc/passwd

a:x:500:500::/home/a:/bin/bash

b:x:501:500::/home/b:/bin/bash

test:x:502:502::/home/test:/bin/bash

檔案的許可權

1.1使用root使用者建立檔案,並修改檔案的屬主和屬組

[root@localhost ~]# mkdir /data

[root@localhost ~]# touch /data/ceshi.txt

[root@localhost ~]# chown a.abc /data/ceshi.txt

[root@localhost ~]# ll /data/ceshi.txt

-rw-r--r-- 1 a abc 0 apr 9 21:02 /data/ceshi.txt

1.2可以發現檔案預設的許可權位為644,分別修改許可權位為754、731,檔案變為可執行(顏色變綠)

[root@localhost ~]# mkdir /data

[root@localhost ~]# touch /data/ceshi.txt

[root@localhost ~]# chown a.abc /data/ceshi.txt

[root@localhost ~]# ll /data/ceshi.txt

-rw-r--r-- 1 a abc 0 apr 9 21:02 /data/ceshi.txt

1.3小結:

對於普通使用者來說,檔案具有執行許可權的前提是需要具有讀的許可權

root使用者擁有絕對的許可權

root使用者對所有檔案都有讀寫的許可權    

ugo中任何乙個有執行許可權就等於root使用者有執行許可權

目錄的許可權

2.1使用root使用者建立目錄,並修改檔案的屬主和屬組

[root@localhost ~]# mkdir /data/ceshi

[root@localhost ~]# chown a.abc /data/ceshi

[root@localhost ~]# touch /data/ceshi/

[root@localhost ~]# ls -ld /data/ceshi

drwxr-xr-x 2 a abc 4096 apr 9 21:11 /data/ceshi

2.2分別切換到不同使用者下執行ls命令(檢驗讀許可權)、mkdir命令(檢驗寫許可權)、cd命令(檢驗執行許可權)

[root@localhost ~]# su - a

[a@localhost ~]$ ls /data/ceshi

1 2 3 4 5

[a@localhost ~]$ mkdir -p /data/ceshi/6

[a@localhost ~]$ cd /data/ceshi

[a@localhost ceshi]$ cd

[a@localhost ~]$ su

password:

[root@localhost a]# su - b

[b@localhost ~]$ ls /d

ls: cannot access /d: no such file or directory

[b@localhost ~]$ ls /data/ceshi

1 2 3 4 5 6

[b@localhost ~]$ mkdir -p /data/ceshi/7

mkdir: cannot create directory `/data/ceshi/7': permission denied

[b@localhost ~]$ cd /data/ceshi

[b@localhost ceshi]$ cd

[b@localhost ~]$ su

password:

[root@localhost b]# su - test

[test@localhost ~]$ ls /data/ceshi

1 2 3 4 5 6

[test@localhost ~]$ mkdir -p /data/ceshi/7

mkdir: cannot create directory `/data/ceshi/7': permission denied

[test@localhost ~]$ cd /data/ceshi

[test@localhost ceshi]$ cd

[test@localhost ~]$ su

password:

[root@localhost test]# cd

[root@localhost ~]#

2.3可以發現

a        使用者具有讀寫執行許可權

b        使用者具有讀和執行許可權,沒有寫許可權

test        使用者具有讀和執行許可權,沒有寫許可權

2.4修改許可權位為731,執行同樣的命令檢驗結果,此時

drwx-wx--x 3 a abc 4096 apr 9 21:11

a            使用者具有寫執行許可權,沒有讀許可權

b            使用者具有執行和寫許可權,沒有讀許可權

test            使用者具有執行許可權,沒有讀和寫許可權

2.5修改許可權位為754,執行同樣的命令檢驗結果,此時

drwxr-xr-- 3 a abc 4096 apr 9 21:11

a            使用者具有寫執行許可權,沒有讀許可權

b            使用者具有讀和執行許可權,沒有寫許可權

test            使用者具有讀許可權,沒有寫和執行許可權

2.6小結:

對於普通使用者來說,目錄的讀許可權(ls)需要具有執行許可權

檔案和目錄的關係

目錄也是一種檔案,目錄的block裡面存放的就是目錄下的檔名和目錄名

block的預設大小為4096位元組=4k

讀取檔案內容的原理

讀取/data/ceshi.txt,會先找到根目錄/的inode,通過inode找到根目錄的block,在根目錄的block中,找到/data目錄,通過目錄名找到/data目錄的inode號,根據inode號,找到/data目錄的block,讀取/data目錄的block,找到檔名為/data/ceshi.txt的檔案,找到/data/ceshi.txt的inode號之後,最後再讀取/data/ceshi.txt的block,將結果輸出到螢幕上。

許可權的掩碼

5.1檢視系統掩碼配置檔案cat /etc/bashrc|sed -n '65,69p'

if [ $uid -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then

umask 002

else

umask 022

fiumask 通過控制許可權掩碼就可以控制預設許可權

umask 檢視許可權掩碼

umask 0002 修改許可權掩碼

5.2基於檔案的許可權掩碼

umask預設為0022

0666

-     0022

=    0644

當把umask設定為奇數的時候,系統會自動把算出的奇數字數值加一

5.3基於目錄的許可權掩碼

umask預設為0022

0777

-     0022

=    0755

當把umask設定為奇數的時候,與檔案不同的是,系統不會自動加一

Linux學習筆記(十四)程序

程序是如何工作的 當系統啟動的時候,核心先把一些自己的程式初始化為程序,然後執行乙個叫做init的程式。init再依次執行一系列的稱為init指令碼的shell指令碼 位於 etc 它們可以啟動所有的系統服務。其中許多系統服務以守護 daemon 程式的形式實現,守護程式僅在後台執行,沒有任何使用者...

Linux上天之路(十四)之Linux資料處理

主要內容 常和管道協作的命令 grep grep 用於搜尋模式引數指定的內容,並將匹配的行輸出到螢幕或者重定向檔案中,常和管道協作的命令 grep。還有egrep和fgrep兩個命令。egrep可以使用擴充套件的正規表示式 fgrep沒有元字元與普通字元的區別 grep egrep用別名加了 col...

Linux學習筆記(十四 壓縮命令)

常用壓縮格式 zip gz.bz2 tar gz.tar bz2zip 壓縮檔案名 原檔案 壓縮檔案 zip r 壓縮檔案名 源目錄 壓縮目錄 unzip 壓縮檔案 解壓縮.zip檔案 gzip 原檔案 壓縮為.gz格式的壓縮檔案,原檔案會消失 gzip c 原檔案 壓縮檔案 壓縮為.gz格式,原檔...