[TOC]html
drwxr-xr-x. 4 root root 31 Oct 4 00:54 zhanghao
drwxr-xr-x:node
第一個字符d: 表示文件類型vim
例題:假設test1, test2, test3同屬於testgroup這個羣組,若是有下面的兩個文件,請說明兩個 文件的擁有者與其相關的權限爲什麼? -rw-r--r-- 1 root root 238 Jun 18 17:22 test.txt -rwxr-xr-- 1 test1 testgroup 5238 Jun 19 10:25 ping_tsai
答:安全
在本目錄下進行寫入的動做;bash
* 至於other的權限中[r--]雖然有r ,可是因爲沒有x的權限,所以others的使用者,並不能進
入此目錄!spa
[zhanghao@zhanghao-server ~]$ cd /home/test1/ -bash: cd: /home/test1/: Permission denied [zhanghao@zhanghao-server ~]$ ls [zhanghao@zhanghao-server ~]$ exit logout [root@zhanghao-server test1]# su - test2 [test2@zhanghao-server ~]$ cd /home/test1/ -bash: cd: /home/test1/: Permission denied [test2@zhanghao-server ~]$ ll /home/test1/ ls: cannot open directory /home/test1/: Permission denied [test2@zhanghao-server ~]$ exit logout [root@zhanghao-server test1]# ll /home/ total 0 drwx------. 3 test1 test 95 Oct 4 03:54 test1 drwx------. 2 test2 test 83 Oct 4 03:55 test2 drwx------. 2 zhanghao zhanghao 83 Oct 4 03:55 zhanghao
從上面看,test1和test2雖然是屬於同一個test組,可是/home下面目錄對於組沒有任何的權限,給組一個讀權限
[root@zhanghao-server test1]# chmod 0611 /home/test1 [root@zhanghao-server test1]# su - test2 Last login: Thu Oct 4 03:55:27 EDT 2018 on pts/0 [test2@zhanghao-server ~]$ cd /home/test1/ [test2@zhanghao-server test1]$ ls ls: cannot open directory .: Permission denied
從上面能夠看出其餘用戶在test1目錄下面沒有任何的讀寫,沒辦法ls,touch。cd屬於執行權限
[root@zhanghao-server home]# chmod 755 test1 [root@zhanghao-server home]# ll -h total 0 drwxr-xr-x. 3 test1 test 95 Oct 4 03:54 test1 drwx------. 2 test2 test 83 Oct 4 03:55 test2 drwx------. 2 zhanghao zhanghao 83 Oct 4 03:55 zhanghao [root@zhanghao-server home]# su - test2 Last login: Thu Oct 4 03:58:41 EDT 2018 on pts/0 [test2@zhanghao-server ~]$ cd /home/test1 [test2@zhanghao-server test1]$ ls test [test2@zhanghao-server test1]$ touch nihao touch: cannot touch ‘nihao’: Permission denied [test2@zhanghao-server test1]$ cd test/ [test2@zhanghao-server test]$ ls nihao [test2@zhanghao-server test]$ cat nihao o test1 cat: o: No such file or directory [test2@zhanghao-server test]$ cat nihao test1 [test2@zhanghao-server test]$ vim nihao -bash: vim: command not found [test2@zhanghao-server test]$ vi nihao
vim 保存顯示只讀文件。沒法touch,
/zhanghao目錄其餘人權限爲0,新建用戶zhtest在zhanghao組中,能夠有執行和讀的權限,不能寫。
[zhanghao@zhanghao-server home]$ touch zhanghao [zhanghao@zhanghao-server home]$ exit logout [root@zhanghao-server ~]# su - test1 Last login: Thu Oct 4 03:53:52 EDT 2018 on pts/0 [test1@zhanghao-server ~]$ cd /home/ [test1@zhanghao-server home]$ ls nihao test1 test2 zhanghao [root@zhanghao-server /]# chmod 0750 /zhanghao/ [root@zhanghao-server /]# ll / total 24 lrwxrwxrwx. 1 root root 7 Oct 3 00:14 bin -> usr/bin dr-xr-xr-x. 4 root root 4096 Oct 3 04:00 boot drwxr-xr-x. 19 root root 3160 Oct 4 02:29 dev drwxr-xr-x. 80 root root 8192 Oct 4 03:55 etc drwxr-xr-x. 5 root root 61 Oct 4 04:09 home lrwxrwxrwx. 1 root root 7 Oct 3 00:14 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Oct 3 00:14 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Mar 10 2016 media dr-xr-xr-x. 9 root root 4096 Jul 11 2017 mnt drwxr-xr-x. 2 root root 6 Mar 10 2016 opt dr-xr-xr-x. 106 root root 0 Oct 3 23:55 proc dr-xr-x---. 3 root root 147 Oct 4 00:17 root drwxr-xr-x. 26 root root 800 Oct 4 00:20 run lrwxrwxrwx. 1 root root 8 Oct 3 00:14 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Mar 10 2016 srv dr-xr-xr-x. 13 root root 0 Oct 3 23:55 sys drwxrwxrwt. 11 root root 4096 Oct 4 03:26 tmp drwxr-xr-x. 13 root root 155 Oct 3 00:14 usr drwxr-xr-x. 19 root root 267 Oct 3 03:55 var drwxr-x---. 4 zhanghao zhanghao 31 Oct 4 00:54 zhanghao [root@zhanghao-server /]# su - test1 Last login: Thu Oct 4 04:18:33 EDT 2018 on pts/0 [test1@zhanghao-server ~]$ ls test [test1@zhanghao-server ~]$ cd /zhanghao/ -bash: cd: /zhanghao/: Permission denied [test1@zhanghao-server ~]$ [root@zhanghao-server /]# useradd zhtest -g zhanghao [root@zhanghao-server /]# su - zhtest [zhtest@zhanghao-server ~]$ cd /zhanghao/ [zhtest@zhanghao-server zhanghao]$ ls test test1 [zhtest@zhanghao-server zhanghao]$ touch niaho touch: cannot touch ‘niaho’: Permission denied
將/zhanghao目錄的組權限修改成test,讓test組下面的用戶test1,有讀和執行的權限。
[root@zhanghao-server /]# chgrp test /zhanghao [root@zhanghao-server /]# ll -h total 24K lrwxrwxrwx. 1 root root 7 Oct 3 00:14 bin -> usr/bin dr-xr-xr-x. 4 root root 4.0K Oct 3 04:00 boot drwxr-xr-x. 19 root root 3.1K Oct 4 02:29 dev drwxr-xr-x. 80 root root 8.0K Oct 4 04:21 etc drwxr-xr-x. 6 root root 75 Oct 4 04:21 home lrwxrwxrwx. 1 root root 7 Oct 3 00:14 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Oct 3 00:14 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Mar 10 2016 media dr-xr-xr-x. 9 root root 4.0K Jul 11 2017 mnt drwxr-xr-x. 2 root root 6 Mar 10 2016 opt dr-xr-xr-x. 106 root root 0 Oct 3 23:55 proc dr-xr-x---. 3 root root 147 Oct 4 00:17 root drwxr-xr-x. 26 root root 800 Oct 4 00:20 run lrwxrwxrwx. 1 root root 8 Oct 3 00:14 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Mar 10 2016 srv dr-xr-xr-x. 13 root root 0 Oct 3 23:55 sys drwxrwxrwt. 11 root root 4.0K Oct 4 03:26 tmp drwxr-xr-x. 13 root root 155 Oct 3 00:14 usr drwxr-xr-x. 19 root root 267 Oct 3 03:55 var drwxr-x---. 4 zhanghao test 31 Oct 4 00:54 zhanghao [root@zhanghao-server /]# su - test1 Last login: Thu Oct 4 04:19:58 EDT 2018 on pts/0 [test1@zhanghao-server ~]$ cd /zhanghao/ [test1@zhanghao-server zhanghao]$ ls test test1 [test1@zhanghao-server zhanghao]$ touch nihao touch: cannot touch ‘nihao’: Permission denied
修改文件擁有者
[root@zhanghao-server /]# chown -R root:root /zhanghao [root@zhanghao-server /]# ll / total 24 lrwxrwxrwx. 1 root root 7 Oct 3 00:14 bin -> usr/bin dr-xr-xr-x. 4 root root 4096 Oct 3 04:00 boot drwxr-xr-x. 19 root root 3160 Oct 4 02:29 dev drwxr-xr-x. 80 root root 8192 Oct 4 04:21 etc drwxr-xr-x. 6 root root 75 Oct 4 04:21 home lrwxrwxrwx. 1 root root 7 Oct 3 00:14 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Oct 3 00:14 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Mar 10 2016 media dr-xr-xr-x. 9 root root 4096 Jul 11 2017 mnt drwxr-xr-x. 2 root root 6 Mar 10 2016 opt dr-xr-xr-x. 107 root root 0 Oct 3 23:55 proc dr-xr-x---. 3 root root 147 Oct 4 00:17 root drwxr-xr-x. 26 root root 800 Oct 4 00:20 run lrwxrwxrwx. 1 root root 8 Oct 3 00:14 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Mar 10 2016 srv dr-xr-xr-x. 13 root root 0 Oct 3 23:55 sys drwxrwxrwt. 11 root root 4096 Oct 4 03:26 tmp drwxr-xr-x. 13 root root 155 Oct 3 00:14 usr drwxr-xr-x. 19 root root 267 Oct 3 03:55 var drwxr-x---. 4 root root 31 Oct 4 00:54 zhanghao
chown -R 用戶: 組 文件, 能夠單純的改組
[root@zhanghao-server /]# chown -R :test zhanghao [root@zhanghao-server /]# ll -h total 24K lrwxrwxrwx. 1 root root 7 Oct 3 00:14 bin -> usr/bin dr-xr-xr-x. 4 root root 4.0K Oct 3 04:00 boot drwxr-xr-x. 19 root root 3.1K Oct 4 02:29 dev drwxr-xr-x. 80 root root 8.0K Oct 4 04:21 etc drwxr-xr-x. 6 root root 75 Oct 4 04:21 home lrwxrwxrwx. 1 root root 7 Oct 3 00:14 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Oct 3 00:14 lib64 -> usr/lib64 drwxr-xr-x. 2 root root 6 Mar 10 2016 media dr-xr-xr-x. 9 root root 4.0K Jul 11 2017 mnt drwxr-xr-x. 2 root root 6 Mar 10 2016 opt dr-xr-xr-x. 107 root root 0 Oct 3 23:55 proc dr-xr-x---. 3 root root 147 Oct 4 00:17 root drwxr-xr-x. 26 root root 800 Oct 4 00:20 run lrwxrwxrwx. 1 root root 8 Oct 3 00:14 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Mar 10 2016 srv dr-xr-xr-x. 13 root root 0 Oct 3 23:55 sys drwxrwxrwt. 11 root root 4.0K Oct 4 03:26 tmp drwxr-xr-x. 13 root root 155 Oct 3 00:14 usr drwxr-xr-x. 19 root root 267 Oct 3 03:55 var drwxr-x---. 4 root test 31 Oct 4 00:54 zhanghao
權限code
附加者server
chmod 755 filename
chmod u=rwx,go=rx filename
顯示當前用戶建立目錄和文件夾的時候,默認的權限,用777減去umask值是默認的權限值
,umask後面加上數字表示設置。htm
[root@zhanghao-server ~]# umask 0022 [root@zhanghao-server ~]# umask -S u=rwx,g=rx,o=rx
[root@study ~]# chattr [+-=][ASacdistu] 文件或目錄名稱 選項與參數: + :增長某一個特殊參數,其餘本來存在參數則不動。 - :移除某一個特殊參數,其餘本來存在參數則不動。 = :設置必定,且僅有後面接的參數 A :當設置了 A 這個屬性時,若你有存取此文件(或目錄) 時,他的存取時間 atime 將不會被修改,可避免 I/O 較慢的機器過分的存取磁盤。(目前建議使用文件系統掛載參數處理這個項目) S :通常文件是非同步寫入磁盤的(原理請參考[前一章sync](../Text/index.html#sync)的說明) ,若是加上 S 這個屬性時,當你進行任何文件的修改,該更動會「同步」寫入磁盤中。 a :當設置 a 以後,這個文件將只能增長數據,而不能刪除也不能修改數據,只有root 才能設置這屬性 c :這個屬性設置以後,將會自動的將此文件「壓縮」,在讀取的時候將會自動解壓縮,可是在儲存的時候,將會先進行壓縮後再儲存(看來對於大文件彷佛蠻有用的!) d :當 dump 程序被執行的時候,設置 d 屬性將可以使該文件(或目錄) 不會被 dump 備份 i :這個 i 可就很厲害了!他可讓一個文件「不能被刪除、更名、設置連接也沒法寫入或新增數據!」對於系統安全性有至關大的助益!只有 root 能設置此屬性 s :當文件設置了 s 屬性時,若是這個文件被刪除,他將會被徹底的移除出這個硬盤空間,因此若是誤刪了,徹底沒法救回來了喔! u :與 s 相反的,當使用 u 來設置文件時,若是該文件被刪除了,則數據內容其實還存在磁盤中,可使用來救援該文件喔! 注意1:屬性設置常見的是 a 與 i 的設置值,並且不少設置值必需要身爲 root 才能設置 注意2:xfs 文件系統僅支持 AadiS 而已 範例:請嘗試到/tmp下面建立文件,並加入 i 的參數,嘗試刪除看看。 [root@study ~]# cd /tmp [root@study tmp]# touch attrtest <==建立一個空文件 [root@study tmp]# chattr +i attrtest <==給予 i 的屬性 [root@study tmp]# rm attrtest <==嘗試刪除看看 rm: remove regular empty file `attrtest'? y rm: cannot remove `attrtest': Operation not permitted # 看到了嗎?呼呼!連 root 也沒有辦法將這個文件刪除呢!趕忙解除設置! 範例:請將該文件的 i 屬性取消! [root@study tmp]# chattr -i attrtest
SUID只能在二進制執行文件上生效,好比/usr/bin/passwd上面。普通用戶執行具備SUID權限的二進制權限的時候,會臨時具備root用戶的超級權限。也就是說普通用戶也是能夠執行。ip
SGID對於目錄和文件也有效, 程序執行須要用戶有執行x權限。假如我用zhanghao用戶執行,zhanghao用戶的組是zhanghao,可是我要執行文件的用戶組是haozi,那麼我用zhanghao執行就會有haozi組的權限,對於目錄和文件來講,有SGID權限,使用者能夠對這個目錄進行讀和執行。
只是對於目錄有效,對於文件已經沒有任何效果。
好比/tmp目錄。擁有SBIT目錄,在裏面建立的文件只有本身或者root權限才能夠刪除。
### SUID $ chmod 4755 ### SGID $ chmod 2755 ### SBIT $ chmod 1755