上一章咱們學習了用戶的權限以及用戶的管理,這一章咱們就來學習文件的權限和管理
linux
這一章的內容十分重要,由於Linux中的一切都是文件。因此文件的管理顯得尤其重要shell
文件權限vim
1.文件屬性的查看:安全
ls -l filenamebash
-|rw-r--r--.|1| root| root| 46| Oct 1 05:03 |filenameide
1 2 3 4 5 6 7 8學習
在這裏,咱們把這個命令的輸出人工的分爲了9段(輸出中間的分隔符「|」是咱們爲了方便觀察本身加上去的哦),接下來咱們意義來解釋這9段分別是什麼ui
1.文件類型
spa
- ##普通文件
3d
d ##目錄
c ##字符設備
s ##套接字
p ##管道
b ##塊設備
l ##鏈接
2.文件讀寫權限
rw-|r--|r--
* $ @
* 擁有者的權限
$ 擁有組的權限
@ 其它人的權限
3.文件內容被記錄的次數
4.文件擁有者
5.文件擁有組
6.文件內容的大小
7.文件最後一次被修改的時間
8.文件名字
文件擁有人擁有組的管理
chown username file|directory ##更改擁有人
chown username:groupname file|directory ##更改擁有人擁有組
chown -R username directory ##更改目錄自己及裏面全部內容的擁有人
chgrp -R groupname directory ##更改目錄自己及裏面全部內容的擁有組
監控命令:watch -n 1 ls -lR /mnt
經過上面這張截圖咱們能夠看到,咱們剛開始有一個名爲westos的文件,它的擁有者是westos
而後咱們執行了chown 0 westos操做(0=root),它的擁有者就變成了root
文件普通權限
rw-|r--|r--
u g o
u:文件擁有者對文件能夠讀寫
g:文件擁有組對文件能夠讀
o:其它人對文件可讀
u優先匹配,g次優先,o當u,g不匹配時匹配
r
對文件:能夠查看文件中的字符
對目錄:能夠查看目錄中文件的信息
2.w
對文件:能夠更改文件內字符
對目錄:能夠在目錄中刪除添加文件
3.x
對文件:能夠運行文件
對目錄:能夠進入目錄中
4.字符方式修改文件權限
chmod [-R] [u|g|o] [+|-|=] [r|w|x] file|dir
chmod u-x file1 ##file1擁有者去掉x權限
chmod g+w file1 ##file1擁有組添加w權限
chmod u-x,g+w file1 ##file1擁有者去掉x權限,擁有組添加w權限
chmod ugo-r file2 ##file2的用戶組其它人去掉r權限
chmod ug+x,o-r file3 ##file3擁有者和擁有組添加x權限,其它人去掉r權限
5.數字方式修改文件權限
在linux中
r=4
w=2
x=1
文件權限數字表示方式:
rw-|r--|r--
u g o
u=rw-=4+2+0=6
g=r--=4+0+0=4
o=r--=4+0+0=4
因此文件權限表示爲644
chmod 修改後權限值 file
chmod 777 file
7=rwx
6=rw-
5=r-w
4=r--
3=-wx
2=-w-
1=--x
瞭解了這些之後,你們必定都想試試看,看本身touch一個文件或目錄權限是否都是777
可是試過的同窗必定會發現,並非這樣。
咱們mkdir一個新的目錄,會發現它的權限顯示這樣 drwxr-xr-x 也就是755
而touch一個新文件則,它的權限則是 -rw-r--r-- 也就是644
這是爲何呢?
在咱們建立一個文件或者目錄時,系統默認會在777的基礎上減去022,這是爲了安全着想。咱們只給擁有者寫和執行的權力,讓擁有組和其它人只有讀的權利。然而文件在建立的初始爲了安着想,則不能給任何人執行的權力,因此要在755的基礎上再減去111,就有了644這個結果,以下圖:
固然,022是系統的默認選項,咱們也能夠去更改它
umask 077 ##修改系統保留權限爲077,此設定爲臨時設定,只當前shell中有效
永久修改方式:
vim /etc/bashrc ##shell
在第71行到74行以下:
71 umask 002 ##普通用戶umask
72 else
73 umask 022 ##超級用戶umask
74 fi
vim /etc/profile ##系統
在第60到63行以下
60 umask 002 ##普通用戶umask
61 else
62 umask 022 ##超級用戶umask
63 fi
只須要把這裏的umask進行更改就是永久更改
以上兩個文件umask設定值必須保持一致
source /etc/bashrc
source /etc/profile
讓設定當即生效
特殊權限
suid ##冒險位
只針對二進制可執行文件
做用:能夠設定文件內程序被執行時是以文件擁有者身份執行的,而不是真正的執行者
老師舉的例子很形象:就是你借了鄰居的鍋作飯,加了suid就能夠借了他的鍋還讓他給你作飯。
設定方式:
1.參數方式:chmod u+s file
由於suid=4,因此還有一個數字方式
2.數字方式:chmod 4xxx file
2.sgid ##強制位
對文件:只針對二進制可執行文件
做用:能夠設定在任何人運行二進制可執行文件時產生的進程的全部組都是文件的全部組
對目錄:當目錄擁有sgid權限後,目錄中新建的全部文件的全部組都自動歸屬到目錄的全部組當中,和文件創建者所在的組無關(注意,這裏是 新建 的全部文件!新建的!!!)
設定方式:
1.參數方式:chmod g+s file|directory
由於sgid=2,因此有數字方式
2.數字方式:chmod 2xxx file|directory
3.sticky ##粘制位
t權限:
只針對目錄,當一個目錄上有t權限,那麼目錄中的文件只能被擁有者刪除
設定方式:
1.命令方式:chmod o+t directory
由於t=1,因此有數字方式
2.chmod 1xxx directory