一:知識背景
linux\unix本身就是由無數個文件組成的系統,允許多個用戶進行同時登錄進行操作,這個時候文件的權限和安全就極為重要,互聯網安全紅線和隱私永遠是重點關注的地方。
本次筆記內
1. 文件和目錄的權限介紹
2. chmod\chown\chgrp
3.suid\guid\umask
4.符號連接
二:干貨
2.1 文件的目錄以及權限
以這個文件為例
total 20500:是該目錄所有文件占用空間,沒有options就是以byte為單位
首字母是文件類型:
d 目錄:大概就是dictionnary的縮寫,
l 符號鏈接:這個在后面詳細寫下
s 套接字文件 :我們平常以mysql和mysql -uuser -p password就是以socket鏈接,就是上圖的msyql.sock,本地登錄。或者以tcp鏈接(mysql -h ip -u -p)
- 就是大家熟悉的普通文件
-c 字符設備文件 -b block 塊設備文件 -p 命名管道文件
文件權限:
rwx rwx rwx 分別對應的就是 對應的 read write execute 讀寫執行的權限
mysql mysql 就是對應這個文件的所有者(user)和 所屬群組(group),屬主和屬組
4096 文件大小
DEC 12 16 就是文件修改的最后日期
mysql.sock就是文件名稱
2.2修改文件權限:
method1:
chmod 【who】operation permission filename
who:u:user屬主 g:group屬組,同組用戶 o:other 其他用戶
opration:加減權限 + -
permission:權限,r w x
實例:chomd u+x mysql.sock,增加mysql屬主的執行權限
method2:
第二種方法被稱為絕對值法 也是大家最多使用的方法
rwx rwx rwx ,9位權限位 有就代表為1 ,沒有就是為0,以二進制的形式去表達 rwx r-- rwx 就是740,rwx rwx rwx 就是777
這個就是為什么大家稱為 r為4 w為2 x為1的原因,還有博客喜歡用八進制表達,道理大概差不多
實例:chmod 777 mysql.sock 就是賦予mysql.scok文件 rwx rwx rwx的權限
method3:
chown 改變屬主
chown username filename
實例:chown linux mysql msyql文件的屬主就是linux
chown user:group filename 可以同時改變屬主和屬組
chowm root:root mysql 可以同時修改mysql文件的屬主和屬組
chown的多功能性導致chgrp命令的很少使用
chgrp groupname filename ,語法也是大概差不多
-R 這個選項很實用,能夠是賦權目錄下面所有子目錄文件權限發生改變,但是確實要謹慎使用
2.4 umask\suid\sgid
umask:使用touch/mkdir創建目錄屬主和屬組和創建用戶一致,但是權限就是和umake相關
大家看到這里,UID= id -ur (配置文件定義的,沒有截圖出來)顯示用戶的id ,判斷是否大於199,id越小權限越大,root的權限為0,那么 rmask為 002,大於199判斷 group id和 user id 是否相同,一致就為002,不一致就是022
用戶的umask 在/etc/profile可以看到,不同用戶的umask值標識創建用戶的缺省權限,也可以在/etc/passwd查看用戶的權限
suid/sgid 全稱set user id
suid意味着如果某個用戶對屬於自己的 s h e l l腳本設置了這種權限,那么其他用戶在執行這一腳本時也會具有其屬主的相應權限。於是,如果根用戶的某一個腳本設置了這樣的權限,
那么其他普通用戶在執行它的期間也同樣具有根用戶的權限。同樣的原則也適用於 sgid執行相應腳本的用戶將具有該文件所屬用戶組中用戶的權限
比如大家都知道的ping命令 基於icmp協議的網絡報文,權限位就是rws ,所以在任何用戶都可以使用ping探測網絡互通性
這么好權限位如何設置,suid是在相應的權限位前一位設置為4,sgid同理為2,並且s將會出現在x的位置上面,記住:在設置 suid或sgid的同時,相應的
執行權限位必須要被設置。例如,如果希望設置sgid,那么必須要讓該用戶組具有執行權限。
2.5 符號鏈接:分為硬連接和軟鏈接,硬連接有無法給目錄創建和必須同一系統超級管理員的限制而較少使用
在上一篇博文linux安裝mysql數據庫中間就出現過 https://www.cnblogs.com/yblecs/p/10126203.html
語法: ln -s sourcefile softlink_file ,在對符號鏈接操作時候,轉換為自動對源文件操作。刪除軟鏈接不會刪除源文件,只會中斷之間的關系 rm softlink_file
linux根目錄bin目錄就是指向/usr/bin,/bin文件為軟鏈接文件