權限
權限通俗的來說就是哪些事情能做,哪些事情不能做。在linux下,使用者分為了兩種:超級使用者(root)、普通使用者。
- 超級使用者:可以在linux下做任何事情,不受限制
- 普通使用者:在linux下做有限的事情
檔案權限管理
檔案通路者
- 檔案和目錄的所有者:u-User
- 檔案和目錄的所屬組:g-Group
- 其他使用者:o-Other
檔案通路權限
基本權限
- 讀(r):read對檔案而言,具有讀取檔案内容的權限;對目錄來說,具有遊覽該目錄資訊的權限。
- 寫(w):write對檔案而言,具有修改檔案内容的權限;對目錄來說具有删除移動目錄内檔案的權限。
- 執行(x):execute對檔案而言,具有執行檔案的權限;對目錄來說,具有進入目錄的權限。
- “-”表示不具備該項權限
檔案權限的表示方法
字元表示法
Linux表示 | 說明 | Linux表示 | 說明 |
---|---|---|---|
r--- | 隻讀 | -w- | 僅可寫 |
--x | 僅可執行 | rw- | 可讀可寫 |
-wx | 可寫可執行 | r-x | 可讀可執行 |
rwx | 可讀可寫可執行 | --- | 無權限 |
8進制數值表示法
權限符号 | 八進制 | 二進制 |
---|---|---|
r | 4 | 100 |
w | 2 | 010 |
x | 1 | 001 |
rw | 6 | 110 |
rx | 5 | 101 |
wx | 3 | 011 |
rwx | 7 | 111 |
--- | 000 |
檔案權限相關指令
-
umask
檢視或設定檔案的預設建立權限掩碼
預設建立檔案的權限是777
檔案最終權限算法是777&(~umask)
-
chmod
修改檔案權限
0775 以八進制數組方式設定
u/g/o/a +/- r/w/x 設定指定使用者的權限
-
chown
修改檔案所有者
chown root file
-
chgrp 修改檔案所屬組
chgrp root file
-
粘滞位
這個權限為主要針對的是目錄,功能是讓使用者在一個目錄下可以建立檔案,但是隻能删除自己的檔案而不能删除别人的檔案。
chmod +t file
權限探究
進入目錄需要哪些權限?在目錄中執行增删查(cd, touch, ls, rm, mv等)改檔案動作, 需要哪些權限?
進入目錄(cd)
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0DMtJGasdkW2hnMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLzQzMzITM0YTM4ITMxgTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
從圖中可以看出,建立一個新目錄預設給我們目錄所有者添加的權限是rwx(可讀可寫可執行),當我們使用chmod指令給目錄依次去除r(可讀)、w(可寫)、x(可執行權限)時,直到x(可執行權限)被去除時,cd指令才出現錯誤提示。當我們給目錄所有者添加上x(可執行權限)後,目錄就又可以進入了。由此說明,進入目錄操作(cd)需要的是目錄的可執行權限。
在目錄中執行“增”操作(touch)
從圖中可以看出,在預設的目錄權限下,也就是rwx(可讀可寫可執行)權限下在目錄中可以建立檔案,當我們給目錄去除r(可讀)權限後仍然可以建立檔案,但是去除檔案的w(可寫)權限後,在目錄中建立檔案操作(touch)不被允許,當我們給檔案又加上w(可讀)權限後,在目錄中就又可以建立檔案了。由此說明,在目錄中執行“增”操作(touch)需要的是目錄的可執行權限和可寫權限(這裡不能遺漏可執行權限,因為沒有可執行權限都無法進入目錄,何談建立檔案呢)。
在目錄中執行“删”操作(rm)
從圖中可以看出,在預設的目錄權限下,也就是rwx(可讀可寫可執行)權限下在目錄中可以删除檔案,當我們給目錄去除r(可讀)權限後仍然可以删除檔案,但是去除檔案的w(可寫)權限後,在目錄中删除檔案操作(rm)不被允許,當我們給檔案又加上w(可寫)權限後,在目錄中就又可以删除檔案了。由此說明,在目錄中執行“删”操作(rm)需要的是目錄的可執行權限和可寫權限(這裡不能遺漏可執行權限,因為沒有可執行權限都無法進入目錄,何談删除檔案呢)。
在目錄中執行“查”操作(ls)
從圖中可以看出,在預設的目錄權限下,也就是rwx(可讀可寫可執行)權限下在目錄中可以遊覽目錄内容,當我們給目錄去除w(可寫)權限後仍然可以遊覽目錄,但是去除檔案的r(可讀)權限後,在目錄中遊覽目錄内容操作(rm)不被允許,當我們給檔案又加上r(可讀)權限後,在目錄中就又可以遊覽目錄内容了。由此說明,在目錄中執行“查”操作(ls)需要的是目錄的可執行權限和可讀權限(這裡不能遺漏可執行權限,因為沒有可執行權限都無法進入目錄,何談遊覽目錄内容呢)。
在目錄中執行“改”操作(mv)
從圖中可以看出,在預設的目錄權限下,也就是rwx(可讀可寫可執行)權限下在目錄中可以移動檔案,當我們給目錄去除r(可讀)權限後仍然可以重命名檔案,但是去除檔案的w(可寫)權限後,在目錄中重命名檔案操作(mv)不被允許,當我們給檔案又加上w(可讀)權限後,在目錄中就又可以重命名檔案了。由此說明,在目錄中執行“改”操作(mv)需要的是目錄的可執行權限和可寫權限(這裡不能遺漏可執行權限,因為沒有可執行權限都無法進入目錄,何談重命名檔案呢)
Linux重要目錄
-
/proc
Linux核心提供了一種通過 /proc 檔案系統,在運作時通路核心内部資料結構、改變核心設定的機制。proc檔案系統是一個僞檔案系統,它隻存在記憶體當中,而不占用外存空間。它以檔案系統的方式為通路系統核心資料的操作提供接口。
-
/sys
檔案系統通路Linux核心。
-
/SElinux
SELinux是一種基于域-類型模型(domain-type)的強制通路控制(MAC)安全系統,它由NSA編寫并設計成核心子產品包含到核心中,相應的某些安全相關的應用也被打了SELinux的更新檔,最後還有一個相應的安全政策。
-
/bin
可以執行二進制檔案下的目錄,例如 ls, tar, cat ,cp。
-
/usr/lib
存放一些程式運作時所必須的函數庫。
-
/usr/local
提供給普通使用者的/usr目錄,/usr/local 這裡适合安裝軟體,存放軟體更新包。
-
/var
存放經常擴充,不斷變化的東西。那些經常被修改的檔案可以存放在這個目錄下。
-
/tmp
一般使用者或正在執行的程式臨時存放檔案的目錄,任何人都可以通路,重要資料不可放置在此目錄下
linux重要指令
-
du
格式:du [選項] [檔案]
功能:顯示每個檔案和目錄的磁盤使用空間
-
-a
顯示目錄中個别檔案的大小。
-
-b
顯示目錄或檔案大小時,以byte為機關。
-
-c
除了顯示個别目錄或檔案的大小外,同時也顯示所有的目錄或檔案的總和。
-
-s
僅顯示總計,隻列出最後加的值。
-
-h
以K、M、G為機關,提高資訊的可讀性。
-
df
格式:df [選項] [檔案]
功能:可顯示目前所有檔案系統的可用空間及使用情況(動态顯示過程);檢視哪一級檔案大小、使用比例、檔案系統及其挂入點。
-
-h
表示使用[Human-readable]的輸出,也就是在檔案系統中大小使用GB、MB等易讀的格式。
- List item
-
top
功能:提供了實時的對系統的處理器的狀态監視,可顯示系統中各個程序的資源占用狀況。
-
-d
指定兩次螢幕資訊重新整理之間的時間間隔
-
p
通過指定監控程序id來監控某個程序的狀态。
-
free
功能:檢視目前系統記憶體的使用情況,包括系統中剩餘及已用的實體記憶體、交換記憶體、共享記憶體和被核心使用的緩沖區。
-
-b
輸出以byte方式顯示
-
-k
輸出以KB方式顯示,這也是系統預設的選項
-
-m
輸出以MB方式顯示,這個參數比較常用
-
-g
輸出以GB方式顯示
-
-l
顯示詳細資訊
-
-o
舊格式顯示,不顯示-/+ buffers/cache等項
-
-t
顯示總實體記憶體和交換區間
-
-c n
顯示統計的次數,n預設為1
-
-s n
間隔秒數,持續觀察記憶體使用情況
-
-V
顯示版本資訊
-
-help
顯示幫助資訊
-
pstack
格式:pstack pid
功能:可顯示每個程序的棧跟蹤,必須由相應程序的屬主或root運作。也可以使用pstack來确定程序挂起的位置。
-
su
功能:使用者之間的切換
-
sudo
格式: sudo [參數] [指令]
功能:普通使用者可以使用root來執行指定指令
-
-s
執行環境變數中的SHELL所指定的shell,或者是/etc/passwd中所指定的shell。
-
-v
顯示版本編号
-
-h
顯示版本編号及指令的使用方法說明。
-
-l
顯示自己的權限
-
-k
将會強迫使用者在下一次執行sudo時詢問密碼。
-
adduser
格式:adduser [必要參數] [選擇性參數] [使用者名]
功能:指令根據指令行參數給系統添加使用者,它的配置資訊儲存在/etc/adduser/.conf檔案中
-
-r
system建立一個系統使用者
-
-q
隻顯示警告資訊和錯誤資訊,不顯示一般資訊
-
-c
加上備注文字,備注文字會儲存在passwd的備注欄中。
-
-d
指定使用者登入時的起始目錄
-
-D
變更預設值
-
-e
指定賬戶的有效期限,預設表示永久有效
-
-f
指定密碼過期後多少天關閉該賬号
-
-g
指定使用者所屬的群組
-
-G
指定使用者所屬的附加群組
-
-m
自動建立使用者的登入目錄
-
-M
不要自動建立使用者的登入目錄
-
-s
指定使用者登入後所使用的shell
-
-u
指定使用者id
-
passwd
功能:修改使用者密碼
-
-d
删除密碼
-
-f
強制執行
-
-k
更新隻能在過期之後發送
常用工具的安裝
gcc/g++安裝
進入root使用者之後,在指令行中輸入:yum install gcc,根據提示進行便可進行gcc編譯器的安裝。
輸入:yum install gcc-g++按提示則可進行g++的安裝。
若顯示上圖中提示,則說明linux中已經安裝好最新版本的gcc編譯器。
gdb安裝
進入root使用者之後,在指令行中輸入:yum install gdb按照提示即可進行gdb調試工具的安裝。
若出現上圖中提示,則說明linux中已經安裝好最新版本的gdb調試工具。
vim安裝
一般linux中都會自帶vi/vim文本編輯器,無需進行安裝。但是可以通過檢查vim版本對其進行更新,更重要的是可以通過配置vim使得代碼編輯更加友善美觀。