1. 程式人生 > >shell筆記之檔案許可權

shell筆記之檔案許可權

 

一:知識背景

  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