12.29-linux r-w-x權限詳解

12.29node

linux r-w-x權限詳解linux

內容:vim

1. linux目錄權限體系bash

2. rwx權限的計算ide

3. rwx針對目錄或文件的具體含義測試

4. 更改權限---chmod命令spa

5. 一些關於權限類故障的排查過程與解決方法orm

第1章 linux權限體系梗概

1.1 基本權限(r  w  x  -)

 r  4                w  2              x  1         -  0blog

 

1.2 對於一個文件Linux用戶分類

[root@oldboy /]# ls -l /etc/hosts圖片

-rw-r--r--. 2 root root 177 May 20  2017 /etc/hosts

全部者          屬於的家庭(用戶組)           其餘人(陌生人)

主人              家人                       陌生人

rw-                r--                         r--

1.3 如何知道oldboy用戶對/etc/hosts文件有什麼權限

1.   你誰                             whoami

2.   你和他什麼關係

 id  oldboy  查看所屬用戶組

幾乎沒有和root同屬一個組

文件默認權限爲644      目錄默認權限755

第2章 修改文件權限 chmod命令

2.1.1 三種用戶

u  -userown文件全部者--(主人)

g  -group (用戶組)

o  -other (其餘用戶)

表示全部

2.1.2 字母形式表示

 u+x       爲全部者添加x權限

 [root@oldboy oldboy]# ls -l test.sh

--w-r-xr-x. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

[root@oldboy oldboy]# chmod u+x test.sh

[root@oldboy oldboy]# ls -l test.sh

--wxr-xr-x. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

先去掉原來的權限     再增長相應權限

[root@oldboy oldboy]# chmod u=w test.sh

[root@oldboy oldboy]# ls -l test.sh

--w-r-xr-x. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

 

給三種用戶都加上x權限1.

chmod  ugo+x  odlboy.sh

2.

chmod a+x test.sh

3.   適用  r  權限

chmod +x test.sh

2.1.3 用數字表示

chmod  644  oldboy.txt

 

2.2 更改文件全部者  chown

oldboy.sh文件的屬主變爲oldboy用戶,屬組變爲oldboy

chown  oldboy.oldboy    oldboy.sh

 

能夠單獨修改文件的搜有這或屬組

 

權限用來限制普通用戶,root用戶會有特權

2.3 測試rwx具體權限

2.3.1 測試環境

mv /oldboy   /tmp/oldboy_bak$(date +%F)
mkdir /oldboy -p
echo "echo oldboylinux" >/oldboy/test.sh          製做腳本文件,裏面存放命令
chmod +x /oldboy/test.sh
cat /oldboy/test.sh
ls -l /oldboy/test.sh

2.3.2 對於文件來講:x執行權限通常用於腳本文件等可執行文件

測試文件的r 

#root修改權限     
chmod u=r test.sh                                             只給oldboy用戶讀取權限
#oldboy用戶進行檢查
[oldboy@oldboyedu43-lnb ~]$ cd /oldboy/
[oldboy@oldboyedu43-lnb oldboy]$ ls -l test.sh 
-r--r-xr-x 1 oldboy oldboy 17 Dec 28 14:39 test.sh
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh                 能夠查看
echo oldboylinux
[oldboy@oldboyedu43-lnb oldboy]$ echo 'hostname' >>test.sh
-bash: test.sh: Permission denied                            沒有寫入權限
[oldboy@oldboyedu43-lnb oldboy]$ ls
test.sh
[oldboy@oldboyedu43-lnb oldboy]$ /oldboy/test.sh             沒有寫入權限
-bash: /oldboy/test.sh: Permission denied

測試文件的w 

#root修改權限
chmod u=w test.sh                                                  只給oldboy用戶寫入權限
#oldboy用戶進行檢查

[oldboy@oldboyedu43-lnb oldboy]$ ls -l test.sh 
w-r-xr-x 1 oldboy oldboy 17 Dec 28 14:39 test.sh
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh                      不能查看內容
cat: test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ echo 'hostname' >>test.sh      能夠寫入

[oldboy@oldboyedu43-lnb oldboy]$ echo 'hostname' >>test.sh
[oldboy@oldboyedu43-lnb oldboy]$ /oldboy/test.sh                   不能執行
-bash: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ vim test.sh         
echo www.oldboyedu.com
echo www.oldboyedu.com
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh
cat: test.sh: Permission denied

 

測試文件的

#root修改權限
chmod u=x test.sh                                             只給oldboy用戶執行權限
#oldboy用戶進行檢查
[oldboy@oldboyedu43-lnb oldboy]$ cat test.sh                 不可查看
cat: test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ echo 'pwd'>>test.sh         不可寫入
-bash: test.sh: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$  /oldboy/test.sh            不可執行
bash: /oldboy/test.sh: Permission denied
                                                               增長了 r權限以後  
[oldboy@oldboyedu43-lnb oldboy]$ cat /oldboy/test.sh        
hostname                                                      
[oldboy@oldboyedu43-lnb oldboy]$ /oldboy/test.sh             可執行
oldboyedu43-lnb
[oldboy@oldboyedu43-lnb oldboy]$ ./test.sh 
oldboyedu43-lnb

2.3.3 總結:(根據實驗環境測試)

用r權限  用vim添增強制退出   覆蓋    echo不可用

用w權限 用vim添增強制退出   覆蓋    echo可用

2.3.4 錯誤

1.這種狀況爲何被拒絕  屬主沒有權限 屬組不仍是有麼

[root@oldboy oldboy]# ll test.sh

---xrw-r--. 1 oldboy oldboy 19 Dec 29 02:52 test.sh

[oldboy@oldboy oldboy]$ echo 123 >>test.sh

-bash: test.sh: Permission denied

全部者沒有權限,不會找屬組的權限

2.超級大坑:即便文件沒有任何權限也能夠用vim來強制寫入內容。可是原內容會被清除,只會顯示用vim寫入的內容。這樣的話,豈不是文件的權限對vim來講就是個擺設了,能夠隨意清除原內容、。

文件的全部者默承認以強制修改該文件,對這個文件沒有任何權限的時候,原內容清空

root默認對全部文件具備讀寫權限,但默認沒有執行權限

2.3.5 對於目錄來講:(重點)

r     查看目錄中內容    ls  oldboyedu

w    能夠在目錄中 建立文件  刪除文件   重命名文件

x    表示是否能夠進入到目錄中  是否能查看/修改目錄文件的屬性信息

環境

mkdir   /oldboy/oldboyedu

touch  /oldboy/oldboyedu/{1..10}.txt

chown  oldboy.oldboy   /oldboy/oldboyedu

測試目錄的r 

#root修改權限

chmod u=r oldboydir/                                        給oldboy用戶查看內容權限

#oldboy用戶進行檢查

[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/

dr--r-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/

[oldboy@oldboyedu43-lnb oldboy]$ ls oldboydir/

ls: cannot access oldboydir/04.txt: Permission denied       只能看到文件名,沒法看到詳細信息

ls: cannot access oldboydir/01.txt: Permission denied

01.txt  02.txt  03.txt  04.txt  05.txt  06.txt  07.txt  08.txt  09.txt  10.txt

[oldboy@oldboyedu43-lnb oldboy]$ ls -l oldboydir/

ls: cannot access oldboydir/10.txt: Permission denied

total 0

-????????? ? ? ? ?            ? 09.txt

-????????? ? ? ? ?            ? 10.txt

[oldboy@oldboyedu43-lnb oldboy]$ stat oldboydir/01.txt      stat也不能用

stat: cannot stat `oldboydir/01.txt': Permission denied

 

目錄的r權限 須要有其餘權限的配合
#
修改目錄的權限爲rx以後 問題解決 
[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/
dr-xr-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/
[oldboy@oldboyedu43-lnb oldboy]$ ls oldboydir/
01.txt  02.txt  03.txt  04.txt  05.txt  06.txt  07.txt 

[oldboy@oldboyedu43-lnb oldboy]$ ls -l oldboydir/
total 0
-rw-r--r-- 1 root root 0 Dec 28 15:42 01.txt
-rw-r--r-- 1 root root 0 Dec 28 15:42 02.txt
[oldboy@oldboyedu43-lnb oldboy]$ 
stat oldboydir/01.txt 
  File: `oldboydir/01.txt'
  Size: 0          Blocks: 0          IO Block: 4096   regular empty file
Device: 803h/2051d Inode: 151129      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2017-12-28 15:42:11.901743051 +0800
Modify: 2017-12-28 15:42:11.901743051 +0800
Change: 2017-12-28 15:42:11.901743051 +0800

小結 
目錄的r權限 能夠查看目錄裏面的內容 
目錄的r權限 須要x權限的配合

測試目錄的w 

root修改權限
chmod u=w oldboydir/                                            給用戶w權限
oldboy用戶進行檢查
[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/
d-w-r-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/
[oldboy@oldboyedu43-lnb oldboy]$ ls oldboydir/                 不能夠查看
ls: cannot open directory oldboydir/: Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ touch oldboydir/oldboy.txt    不可建立文件
touch: cannot touch `oldboydir/oldboy.txt': Permission denied
[oldboy@oldboyedu43-lnb oldboy]$ \rm  oldboydir/01.txt -f   不可刪除文件
rm: cannot remove `oldboydir/01.txt': Permission denied
目錄的w權限 須要有其餘權限的配合
修改目錄的權限爲wx以後           問題解決

[oldboy@oldboyedu43-lnb oldboy]$ ls -ld oldboydir/
d-wxr-xr-x 2 oldboy oldboy 4096 Dec 28 15:42 oldboydir/
[oldboy@oldboyedu43-lnb oldboy]$ touch oldboydir/oldboy.txt
[oldboy@oldboyedu43-lnb oldboy]$ \rm oldboydir/01.txt -f 

小結:

w   在目錄中 建立 刪除 文件

w權限須要x權限配合

測試x

單獨的x權限沒有用

第3章 故障(重點)

[oldboy@oldboyedu43-lnb oldboydir]$ ls -l oldboy.txt

-rwxrwxrwx 1 oldboy oldboy 0 Dec 28 16:01 oldboy.txt            文件權限777

[oldboy@oldboyedu43-lnb oldboydir]$ \rm -f oldboy.txt           屬主沒有刪除文件的權限

rm: cannot remove `oldboy.txt': Permission denied

!!!!刪除一個文件,你須要對文件所在目錄擁有wx權限。

inode 文件屬性 block存放的是數據

文件名 存放在文件所在目錄的block裏面

 

inode  文件屬性  block存放的是數據

文件名 存放在文件所在目錄的block

因此刪除一個文件須要對其所在目錄有相應權限---刪除文件名至關於刪除包含它的目錄的一些內容 (重點)

           文件或目錄權限錯誤排查過程

blob.png

排查報錯緣由(用戶查看文件原理)

2.png

 

總結:

1.你對某個文件擁有什麼權限

2.報錯:permission denied錯誤 排查報錯緣由

3.繪製圖片 排錯圖片

4.對於文件或目錄 rwx含義

5.幾個命令

相關文章
相關標籤/搜索