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格式,原檔...