文件權限和目錄c++
第一個字符表明這個文件是「目錄、文件或連接文件等等」: 當爲[ d ]則是目錄,例如上表文件名爲「.config」的那一行; 當爲[ - ]則是文件,例如上表文件名爲「initial-setup-ks.cfg」那一行; 如果[ l ]則表示爲連接文件(link file); 如果[ b ]則表示爲設備文件裏面的可供儲存的周邊設備(可隨機存取設備); 如果[ c ]則表示爲設備文件裏面的序列埠設備,例如鍵盤、鼠標(一次性讀取設備)。數據庫
接下來的字符中,以三個爲一組,且均爲「rwx」 的三個參數的組合。其中,[ r ]表明可讀(read)、[ w ]表明可寫(write)、[ x ]表明可執行(execute)。 要注意的是,這三個權限的位置不會改變,若是沒有權限,就會出現減號[ - ]而已。 第一組爲「文件擁有者可具有的權限」,以「initial-setup-ks.cfg」那個文件爲例, 該文件的擁有者能夠讀寫,但不可執行; 第二組爲「加入此羣組之賬號的權限」; 第三組爲「非本人且沒有加入本羣組之其餘賬號的權限」。bash
如何改變文件屬性與權限服務器
chgrp :改變文件所屬羣組 chown :改變文件擁有者 chmod :改變文件的權限, SUID, SGID, SBIT等等的特性網絡
數字類型改變文件權限:架構
r:4 > w:2 > x:1socket
舉例:若是要將權限變成「 -rwxr-xr-- 」呢?那麼權限的分數就成爲 4+2+1 [4+0+0]=754 囉!因此你須要下達「 chmod 754 filename」。函數
可執行文件權限:chmod 755 test.shspa
符號類型改變文件權限:操作系統
咱們就能夠藉由u, g, o來表明三種身份的權限!此外, a 則表明 all 亦即所有的身份!那麼讀寫的權限就能夠寫成r, w, x 囉!也就是可使用下面的方式來看:
| chmod | u g o a | +(加入) -(除去) =(設置) | r w x | 文件或目錄 |
舉例: -rwxr-xr-x : chmod u=rwx,go=rx .bashrc
-rwxr-xr-- : chmod u=rwx,g=rx,o=r filename
複製代碼
若是我不知道原先的文件屬性,而我只想要增長.bashrc這個文件的每一個人都可寫入的權限
chmod a+w .bashrc
而若是是要將權限去掉而不更動其餘已存在的權限呢?例如要拿掉所有人的可執行權限
chmod a-x .bashrc
權限對文件和目錄的做用
元件 內容 疊代物件 r w x
文件 詳細數據data 文件數據夾 讀到文件內容 修改文件內容 執行文件內容
目錄 文件名 可分類抽屜 讀到文件名 修改文件名 進入該目錄的權限
注意:要查看文件目錄下的文件,此文件夾須要具備X權限。
Linux文件種類與擴展名
Linux文件擴展名:
不像window中文件的擴展名具備實際做用,基本上,Linux的文件是沒有所謂的「擴展名」的,擴展名只作表示做用,表示該文件是什麼種類的。
Linux目錄配置
Linux目錄配置的依據--FHS(Filesystem Hierarchy Standard)
目錄 應放置文件內容
第一部份:
FHS要求必需要存在的目錄
/bin 主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等經常使用的指令。 /boot 這個目錄主要在放置開機會使用到的文件。
/dev 任何設備與周邊設備都是以文件的型態存在於這個目錄當中。
/etc 系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼檔、各類服務的啓始檔等等。FHS建議不要放置可可執行文件(binary)在這個目錄。 /lib 系統的函數庫很是的多,而/lib放置的則是在開機時會用到的函數庫, 以及在/bin或/sbin下面的指令會調用的函數庫。 /media 這個/media下面放置的就是可移除的設備啦! 包括軟盤、光盤、DVD等等
/mnt 若是你想要暫時掛載某些額外的設備,通常建議你能夠放置到這個目錄中。
/opt 這個是給第三方合力軟件放置的目錄。若是你想要自行安裝額外的軟件那麼也可以將你的軟件安裝到這裏來。 不過,之前的Linux系統中,咱們仍是習慣放置在/usr/local目錄下呢! /run 系統開機後所產生的各項信息。
/srv srv能夠視爲「service」的縮寫,是一些網絡服務啓動以後,這些服務所須要取用的數據目錄。 /tmp 正在執行的程序暫時放置文件的地方。
/usr 第二層 FHS 設置,後續介紹。
/var 第二曾 FHS 設置,主要爲放置變更性的數據,後續介紹。
第二部份:FHS建議能夠存在的目錄
/home 系統默認的使用者主文件夾(home directory)
/lib 用來存放與 /lib 不一樣的格式的二進制函數庫,例如支持 64 位的 /lib64 函數庫等 /root 系統管理員(root)的主文件夾。
除了FHS定義的目錄外,下面是幾個在Linux當中也是很是重要的目錄喔:
目錄 應放置文件內容
/lost+found 這個目錄是使用標準的ext2/ext3/ext4文件系統格式纔會產生的一個目錄,目的在於當文件系統發生錯誤時, 將一些遺失的片斷放置到這個目錄下。不過若是使用的是 xfs 文件系統的話,就不會存在這個目錄了! /proc 這個目錄自己是一個「虛擬文件系統(virtual filesystem)」。
/sys 這個目錄其實跟/proc很是相似,也是一個虛擬的文件系統,主要也是記錄核心與系統硬件信息較相關的信息。
/usr 的意義與內容:
不少讀者都會誤會/usr爲user的縮寫,其實usr是Unix Software Resource的縮寫, 也就 是「Unix操做系統軟件資源」所放置的目錄,而不是使用者的數據啦!
通常來講,/usr的次目錄建議有下面這些:
目錄 應放置文件內容
第一部份:
FHS 要求必需要存在的目錄
/usr/bin/ 全部通常用戶可以使用的指令都放在這裏!
/usr/lib/ 基本上,與 /lib 功能相同,因此 /lib 就是連接到此目錄中的! /usr/local/ 系統管理員在本機自行安裝本身下載的軟件.
| /usr/sbin/ | 非系統正常運行所須要的系統指令。最多見的就是某些網絡服務器軟件 的服務指令(daemon). | | /usr/share/ | 主要放置只讀架構的數據文件,固然也包括共享文件。 | | 第二部份:
FHS 建議能夠存在的目錄 | | | /usr/games/ | 與遊戲比較相關的數據放置處 | | /usr/include/ | c/c++等程序語言的文件開始(header)與包含檔(include)放置處 | | /usr/libexec/ | 某些不被通常使用者慣用的可執行文件或腳本(script)等等 | | /usr/lib/ | 與 /lib/功能相同,所以目前 /lib 就是連接到此目錄中 | | /usr/src/ | 通常源代碼建議放置到這裏,src有source的意思。 |
/var 的意義與內容:
若是/usr是安裝時會佔用較大硬盤容量的目錄,那麼/var就是在系統運行後纔會漸漸佔用硬盤 容量的目錄。例如MySQL數據庫的文件等等。常見的次目錄有:
目錄 應放置文件內容
第一部
份:FHS要求必需要存在的目錄
/var/cache/ 應用程序自己運行過程當中會產生的一些暫存盤;
/var/lib/ 程序自己執行的過程當中,須要使用到的數據文件放置的目錄。
/var/lock/
/var/log/ 這是登陸文件放置的目錄!裏面比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登錄者的信息)等。 /var/mail/ 放置我的電子郵件信箱的目錄
/var/run/ 某些程序或者是服務啓動後,會將他們的PID放置在這個目錄下喔!
/var/spool/ 這個目錄一般放置一些佇列數據,所謂的「佇列」就是排隊等待其餘程序使用的數據啦!
目錄樹:
絕對路徑與相對路徑
絕對路徑:由根目錄(/)開始寫起的文件名或目錄名稱, 例如 /home/dmtsai/.bashrc; 相對路徑:相對於目前路徑的文件名寫法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等 等。反正開頭不是 / 就屬於相對路徑的寫法
. :表明當前的目錄,也可使用 ./ 來表示; .. :表明上一層目錄,也能夠 ../ 來表明。