1、文件權限10個字符對應類型和權限node
2、Linux普通文件和Linux目錄讀、寫、執行權限說明linux
標註:Linux 中的文件名是存在於父目錄的block裏面,並指向這個文件的inode節點bash
一、linux 普通文件讀、寫、執行權限說明測試
權限ui |
描述spa |
範例blog |
可讀 rci |
表示具備讀取文件內容的權限rem |
範例1權限控制 |
可寫 w |
表示具備新增、修改文件內容的權限 一、若是沒有r,那麼vi會提示沒法編輯(可強制編輯),echo 能夠重定向或追加 二、特別提示,刪除(修改文件名等)的權限是受父目錄的權限控制,和文件自己權限無關 |
範例2 |
可執行 x |
表示具備執行文件的權限 一、文件自己要可以執行 二、普通用戶同時還需具有r的權限才能 三、root 只要有x的權限就能執行 win 32下可執行文件 *.exe *.bat *.com linux 下可執行文件 *.sh *.py *.perl等 |
範例3 |
二、linux 目錄的讀、寫、執行權限說明
權限 |
描述 |
範例 |
可讀 r |
表示具備瀏覽目錄下面文件及子目錄的權限,即 ls dir 一、若是沒有x權限,不能進到目錄裏,即沒法cd dir 二、若是沒有x權限,ls 列表時能夠看到全部文件名,可是會提示無權訪問目錄下文件 三、若是ls -l 列表,全部的屬性會帶有問號,也會提示無權訪問目錄下文件。但能夠 看到全部文件名。 |
範例4 |
可寫 w |
表示具備增長、刪除或修改目錄內文件名(通常指文件名)的權限(須要x權限配合使用) |
範例5 |
可執行 x |
表示具備進入目錄的權限,例如 cd dir 可是沒有r沒法列表文件及目錄,沒有w沒法新建和刪除 |
範例6 |
3、環境模擬實踐
chmod (change mode) 改變文件或目錄權限的命令
chmod命令能夠經過兩種方法設置權限,第一種是權限字母和操做符表達式,第二種是數字方法(八進制),推薦使用數字方法。
第一種方法:文件權限對應的數字方法(八進制)表示
chmod [數字組合] 文件名
第二種方法:權限字母和操做符表達式
chmod [用戶類型] [+|-|=] [字符權限] 文件名
權限字母 |
功能 |
權限 |
備註說明 |
u (user) |
+ 增長 - 減小 = 設置 |
r 讀操做 w 寫操做 x 執行操做 - 無權限 |
+ 添加某個權限 - 取消某個權限 = 取消其它全部權限賦予給定的權限 |
g (group) |
|||
o (others) |
|||
a (all) |
模擬測試準備:
一、建立一個用戶組 incahome(主人的家庭,即用戶組)
二、建立三個用戶
oldboy (主人,即用戶)
oldgirl (主人的家人,即用戶)
三、test (其餘人,即用戶)
建立一個目錄oldboy 而且目錄裏建立一個文件 test.sh
模擬操做:
[root@oldboy ~]# groupadd incahome ##建立一個用戶組
[root@oldboy ~]# useradd oldboy -g incahome ##建立一個用戶並分配到指定的incahome用戶組,若是oldboy用戶存在需使用usermod修改用戶組命令
[root@oldboy ~]# useradd oldgirl
[root@oldboy ~]# usermod -g incahome oldgirl ##修改用戶oldgirl所屬用戶組 用戶必須已建立
[root@oldboy ~]# id oldboy ##查看oldoyb UID和GID
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
[root@oldboy ~]# id oldgirl
uid=501(oldgirl) gid=502(incahome) groups=502(incahome)
[root@oldboy ~]# useradd test
[root@oldboy ~]# id test
uid=502(test) gid=503(test) groups=503(test)
##建立oldboy目錄,並在oldboy目錄下建立一個文件test.sh
[root@oldboy ~]# mkdir /oldboy
[root@oldboy ~]# ls -ld /oldboy/
drwxr-xr-x 2 root root 4096 Dec 1 16:30 /oldboy/
[root@oldboy ~]# echo "echo oldboylinux" > /oldboy/test.sh
[root@oldboy ~]# ls -l /oldboy/test.sh
-rw-r--r-- 1 root root 17 Dec 1 16:33 /oldboy/test.sh
[root@oldboy ~]# chmod +x /oldboy/test.sh
[root@oldboy ~]# ls -l /oldboy/test.sh
-rwxr-xr-x 1 root root 17 Dec 1 16:33 /oldboy/test.sh
[root@oldboy ~]# chown oldboy.incahome /oldboy/test.sh ##修改文件所屬主和屬組
[root@oldboy ~]# chown oldboy.incahome /oldboy/
[root@oldboy ~]# ls -l /oldboy/test.sh
-rwxr-xr-x 1 oldboy incahome 32 Dec 3 10:36 /oldboy/test.sh
[root@oldboy ~]# ls -ld /oldboy/
drwxr-xr-- 2 oldboy incahome 4096 Dec 4 17:01 /oldboy/
範例1:
[root@oldboy ~]# ls -l /oldboy/test.sh
-rwxr-xr-x 1 oldboy incahome 32 Dec 3 10:36 /oldboy/test.sh
[root@oldboy ~]# chmod 740 /oldboy/test.sh
[root@oldboy ~]# ls -l /oldboy/test.sh
-rwxr----- 1 oldboy incahome 17 Dec 4 17:01 /oldboy/test.sh
[root@oldboy ~]# su - oldgirl
[oldgirl@oldboy ~]$ cat /oldboy/test.sh
echo oldboylinux
[oldgirl@oldboy ~]$ /oldboy/test.sh
-bash: /oldboy/test.sh: Permission denied
[oldgirl@oldboy ~]$ rm -f /oldboy/test.sh
rm: cannot remove `/oldboy/test.sh': Permission denied
[oldgirl@oldboy ~]$ su - test
Password:
[test@oldboy ~]$ cat /oldboy/test.sh
cat: /oldboy/test.sh: Permission denied
[test@oldboy ~]$ /oldboy/test.sh
-bash: /oldboy/test.sh: Permission denied
[test@oldboy ~]$ rm /oldboy/test.sh
rm: cannot remove `/oldboy/test.sh': Permission denied
範例2:
[root@oldboy ~]# chmod 762 /oldboy/test.sh
[root@oldboy ~]# ls -l /oldboy/test.sh
-rwxrw--w- 1 oldboy incahome 17 Dec 4 17:01 /oldboy/test.sh
[oldgirl@oldboy ~]$ ls -ld /oldboy/
drwxr-xr-x 2 root root 4096 Dec 4 17:01 /oldboy/
[oldgirl@oldboy ~]$ rm /oldboy/test.sh ##文件名存在於oldboy目錄的block裏
rm: cannot remove `/oldboy/test.sh': Permission denied
[oldgirl@oldboy ~]$ echo "testdata" >> /oldboy/test.sh
[oldgirl@oldboy ~]$ cat /oldboy/test.sh
echo oldboylinux
testdata
[oldgirl@oldboy ~]$ su - test
Password:
[test@oldboy ~]$ rm /oldboy/test.sh
rm: cannot remove `/oldboy/test.sh': Permission denied
[test@oldboy ~]$ echo "othersdata" >> /oldboy/test.sh
[test@oldboy ~]$ cat /oldboy/test.sh
cat: /oldboy/test.sh: Permission denied
範例3:
[root@oldboy ~]# ls -l /oldboy/test.sh
-rwxr-x--x 1 oldboy incahome 17 Dec 4 17:47 /oldboy/test.sh
[root@oldboy ~]# su - oldgirl
[oldgirl@oldboy ~]$ cat /oldboy/test.sh
echo oldboylinux
[oldgirl@oldboy ~]$ /oldboy/test.sh
oldboylinux
[oldgirl@oldboy ~]$ su - test
Password:
[test@oldboy ~]$ cat /oldboy/test.sh
cat: /oldboy/test.sh: Permission denied
[test@oldboy ~]$ /oldboy/test.sh
bash: /oldboy/test.sh: Permission denied
範例4:
[root@oldboy ~]# chmod 754 /oldboy/
[root@oldboy ~]# ls -ld /oldboy/
drwxr-xr-- 2 oldboy incahome 4096 Dec 4 17:01 /oldboy/
[root@oldboy ~]# su - oldgirl
[oldgirl@oldboy ~]$ cd /oldboy/
[oldgirl@oldboy oldboy]$ ls /oldboy/
abc.txt test.sh
[oldgirl@oldboy oldboy]$ ls -l /oldboy/
total 4
-rw-r--r-- 1 oldgirl incahome 0 Dec 3 10:41 abc.txt
-rwxr-x--x 1 oldboy incahome 17 Dec 4 17:47 test.sh
[oldgirl@oldboy oldboy]$ su - test
Password:
[test@oldboy ~]$ cd /oldboy/
-bash: cd: /oldboy/: Permission denied
[test@oldboy ~]$ ls /oldboy/
ls: cannot access /oldboy/test.sh: Permission denied
ls: cannot access /oldboy/abc.txt: Permission denied
abc.txt test.sh
[test@oldboy ~]$ ls -l /oldboy/
ls: cannot access /oldboy/test.sh: Permission denied
ls: cannot access /oldboy/abc.txt: Permission denied
total 0
-????????? ? ? ? ? ? abc.txt
-????????? ? ? ? ? ? test.sh
範例5:
[root@oldboy ~]# chmod 777 /oldboy/test.sh /oldboy/file.txt
[root@oldboy ~]# chmod 731 /oldboy/
[root@oldboy ~]# ls -ld /oldboy/
drwx-wx--x 2 oldboy incahome 4096 Dec 4 18:05 /oldboy/
[root@oldboy ~]# ls -l /oldboy/
total 8
-rwxrwxrwx 1 root root 9 Dec 4 18:05 file.txt
-rwxrwxrwx 1 oldboy incahome 17 Dec 4 17:47 test.sh
[root@oldboy ~]# su - oldgirl
[oldgirl@oldboy ~]$ rm /oldboy/file.txt
[oldgirl@oldboy ~]$ ls -l /oldboy/
ls: cannot open directory /oldboy/: Permission denied
[oldgirl@oldboy ~]$ exit
logout
[root@oldboy ~]# ls -l /oldboy/
total 4
-rwxrwxrwx 1 oldboy incahome 17 Dec 4 17:47 test.sh
[root@oldboy ~]# su - test
[test@oldboy ~]$ rm /oldboy/test.sh
rm: cannot remove `/oldboy/test.sh': Permission denied
範例6:
[root@oldboy ~]# chmod 716 /oldboy/
[root@oldboy ~]# ls -ld /oldboy/
drwx--xrw- 2 oldboy incahome 4096 Dec 4 18:11 /oldboy/
[root@oldboy ~]# su - oldgirl
[oldgirl@oldboy ~]$ cd /oldboy/
[oldgirl@oldboy oldboy]$ pwd
/oldboy
[oldgirl@oldboy oldboy]$ su - test
Password:
[test@oldboy ~]$ cd /oldboy/
-bash: cd: /oldboy/: Permission denied
[test@oldboy ~]$ ls -l /oldboy/
ls: cannot access /oldboy/test.sh: Permission denied
total 0
-????????? ? ? ? ? ? test.sh