今天學習了linux的許可權相關的知識,在linux下,有三種「身份」:檔案的所屬者,與該檔案所屬者相同組的成員,其他成員。
這裡說一下組的概念,組相當於我小時候做值日,每週每天都會有不同的人來打掃衛生,那每天打掃衛生的那批人,就是乙個組,在linux上,假設我們新建乙個組a,裡邊有成員a,b,c。這就構成了乙個最簡單的組。
其他的兩個,很好理解,從詞語上來看就能明白意思,這裡就不做解釋了。
既然有組和使用者,那麼我們怎麼去新建乙個組合使用者呢?這裡用到了useradd和groupadd,介紹這兩個命令之前,要先明確uid和gid。
我們都知道,系統在使用使用者登入的時候,不可能是用使用者名稱操作的,有過程式設計經驗的人都知道,我們要給每個使用者分配乙個唯一的id,系統進行任何操作的時候,都使用這個id,這樣就進行了統一。
在linux下,uid由32位組成從0開始,60000以內。
其中:0為root使用者;
1-499為系統使用者;
500之後為普通使用者。
下邊我們介紹命令的使用方式:
1、useradd:增加使用者
例:useradd zw
這樣就建立了乙個名為zw的使用者。
有以下幾個引數:
-d 家目錄
-s 指定登入的shell
-u 指定userid
-g 指定主組
-g 指定附屬組
2、userdel:刪除使用者
userdel 使用者名稱
-r引數,在刪除使用者的同時,一起刪除家目錄
3、groupadd:增加組
groupadd 組名
4、groupdel:刪除組
groupdel 組名
講完了使用者和組的概念之後我們來說一下許可權
linux是根據ugo這三種不同的身份來限制我們的許可權的
許可權分為3種,r可讀,w可寫,x可執行
5、chmod命令:chmod 模式 檔案路徑
例:為名為test的檔案的同族使用者增加可執行許可權:chmod g+x test
同樣的,我們減去乙個許可權:chmod g-x test
使用者和其他也是一樣的。
除了這種方式外,我們還可以用數字來代表許可權,其中,r=4,w=2,x=1
假設我們現在有這樣一組許可權
u g o
rwx r-x ---
那麼我們可以這樣表示
u g o
7 5 0
很簡單吧,就是將這些代表的數字相加就ok了。
例:chmod 750 test,就ok了
6、除了這3x3的許可權之外,linux還有3個特殊許可權,名字叫做suid,sgid,sticky。
suid:以檔案所屬者的身份執行,而不是當前操作的使用者。
這個許可權存在的意義是:假如我們現在有乙個可執行的檔案,裡邊有一條命令,要訪問根目錄的「test」資料夾,假設這個資料夾裡邊有很重要的東西,只能root使用者訪問,其他人都不能看,我們還想使用這個可執行檔案,怎麼辦?如果我們以當前使用者去執行這個檔案,那肯定會出錯的,最好的辦法就是,我使用這個檔案,以這個檔案的所屬使用者的身份去執行,但我們並沒有切換使用者,我還是我,但是執行檔案卻認為我是root,這樣一來,我就有許可權訪問test資料夾了。就可以解決這個問題了。
sgid:在該目錄下所新建的所有檔案和目錄都屬於這個組。
sticky:使用者只能刪除屬於自己的檔案。
假如我們有乙個資料夾test,裡邊是公司的一些檔案,同乙個使用者組的人對這個資料夾都有讀寫的權利,假如員工a建立了乙個檔案,員工b與員工a有矛盾,b看見a的檔案就刪,阻止a正常工作,這樣可是很不好的。那麼設定sticky許可權,就可以阻止這種事情的發生,假如檔案的建立者不是b,那麼b就不能對這個檔案進行操作了。
其中,suid=4,sgid=2,sticky=1
那麼我們設定的時候就可以變成4位了,順序是:特殊位,u,g,o
所以命令可以這樣寫:chmod 1750 test
8 Linux練習小指令碼
1 顯示統計占用系統記憶體最多的程序,並排序。3 每週的工作日1 30,將 etc備份至 backup目錄中,儲存的檔名稱格式 為 etcbak yyyy mm dd hh.tar.xz 其中日期是前一天的時間 1 寫測試備份命令 root c76 data tar jcvf data bak et...
vim學習日誌(8) linux檢視和修改檔案編碼
檢視檔案的編碼 方法一 1.在vim中可以直接檢視檔案編碼 set fileencoding 即可顯示檔案編碼格式。注 如果你只是想檢視其它編碼格式的檔案或者想解決用vim檢視檔案亂碼的問題,那麼你可以在 vimrc 檔案中新增以下內容 set encoding utf 8 fileencoding...
8 linux程序間通訊之訊息佇列
訊息佇列 定義 unix早期的通訊機制之一的訊號能夠傳送的資訊量有限,管道則只能傳 送無格式的位元組流,這無疑會給應用程式的開發帶來不便。訊息佇列 也叫報文佇列 則克服了這些缺點。發展 訊息佇列就是乙個訊息的鍊錶。可以把訊息看作乙個記錄,具有特定的格式。程序可以向其中按照一定的規則新增新訊息 另一些...