《鳥哥的Linux私房菜》note5 php
第六章、Linux的檔案權限與目錄分配 node
1、Linux通常將檔案可存取的身份分爲三個類別, linux
分別是onwer/group/others,使用者/羣組/非本羣組外的其餘人 數據庫
各自有read/write/execute等權限。 ubuntu
羣組的概念 安全
默認,系統上的賬號與通常身份使用者,還有root的相關信息,記錄在/etc/passwd; spa
我的的密碼記錄在/etc/shadow; .net
全部組名記錄在/etc/group。 orm
2、ls—[list],顯示檔案的文件名與相關屬性 遞歸
ls -al:列出全部的檔案詳細的權限與屬性(包含隱藏文件,就是文件名第一個字符爲[.]的檔案)。
示範說明:
drwx------ 2 root root 4096 Sep 5 14:09 .gconfd
-rw-r--r-- 1 root root 42304 Sep 4 18:26 install.log
-rw-r--r-- 1 root root 5661 Sep 4 18:25 install.log.syslog
(1)第一欄表明這個檔案的類型與權限(permission)
-rw-r—r-- :共有10個字符【-】【rw-】【r--】【r--】
第一個字符表示這個檔案是【目錄、檔案或連接文件等等】
當爲【d】則是目錄,例如上表檔名爲【.gconf】的那一行;
當爲【-】則是檔案,例如上表檔名爲【install.log】的那一行;
當爲【l】則表示爲連結檔(link file);
當爲【b】則表示爲裝置文件裏面的可供存儲的接口設備(可隨機存取裝置);
當爲【c】則表示爲裝置文件裏面的串行端口設備,例如鍵盤、鼠標(一次性讀取裝置);
(*重要) 接下來的字符中,以三個爲一組,且均爲【rwx】的三個參數的組合。其中,
【r】表明可讀(read);
【w】表明可寫(write);
【x】表明可執行(execute)。
要注意的是,這三個權限的位置不會改變,若是沒有權限,就會出現減號【-】。
*第一組爲【檔案擁有者的權限】,以【install.log】那個檔案爲例,該檔案的擁有者能夠讀寫,但不可執行;
*第二組爲【同羣組的用戶權限】
*第三組爲【其餘非本羣組的用戶權限】
另外,目錄與檔案的權限意義並不相同,這是由於目錄與檔案所記錄的數據內容各不相同所致。
(2)第二欄表示有多少檔名連結到此點(i-node):
每一個檔案都會將他的權限與屬性記彔到文件系統的 i-node 中,不過,咱們使用的目錄樹倒是使用文件 名來記彔, 所以每一個檔名就會連結到一個 i-node 囉!這個屬性記錄的,就是有多少不一樣的檔名連結到 相同的一個 i-node 號碼去;
(3)第三欄表示這個檔案(或目錄)的【擁有者帳號】;
(4)第四欄表示這個檔案的所屬羣組;
(5)第五欄爲這個檔案的容量大小,默訃單位爲 bytes;
(6)第六欄爲這個檔案的建檔日期或者最近的修改日期:
這一欄的內容分別爲日期(月/日)及時間。若是這個檔案被修改的時間距離如今太麗了,那舉時間部分會 僅顯示年份而已。
備註:若是想要顯示完整的時間格式,能夠利用 ls 的選項,亦即:【ls -l –full-time】就可以顯示出完整的時 間格式。
(7)第七欄爲這個檔案的檔名(*意義重要)
若是檔名以前多一個【 . 】,則表明這個檔案爲【隱藏檔】。
Ls :顯示非隱藏文檔
ls -a :顯示全部文檔(包括隱藏文檔)
-----------------------------------------------------------------------------------------------
例題:
假設 test1, test2, test3 同屬二 testgroup 這個羣組,若是有下面的兩個檔案,請說明兩個 檔案的擁有者不其相關的權限爲什麼?
-rw-r--r-- 1 root root
-rwxr-xr-- 1 test1 testgroup
238 Jun 18 17:22 test.txt
5238 Jun 19 10:25 ping_tsai
答:
檔案 test.txt 的擁有者爲 root,所屬羣組爲 root。至二權限方面則只有 root 這個帳 號能夠存取此檔案,其餘人則僅能讀此檔案;
另外一個檔案 ping_tsai 的擁有者爲 test1,而所屬羣組爲 testgroup。其中:
o test1 能夠針對此檔案具備可讀可寫可執行的權力;
o 而同羣組的 test2, test3 兩我的不 test1 一樣是 testgroup 的羣組帳號,則僅
可讀可執行但丌能寫(亦即丌能修改);
o至二非 testgoup 這一個羣組的人則僅能夠讀,不能寫也不能執行!
-----------------------------------------------------------------------------------------------
Linux檔案權限的重要性:【數據安全性】
3、如何改變文件屬性和權限
修改的指令 :
chgrp :改變檔案所屬羣組
chown :改變檔案擁有者
chmod :改變檔案的權限, SUID, SGID, SBIT 等等的特悵
(1)改變所屬羣組, chgrp ----change group
*要改變的組名不準在/etc/group檔案內存在才行,不然就顯示錯誤!
[root@www ~]# chgrp [-R] dirname/filename ...
選項不參數:
-R : 進行遞歸(recursive)的持續變動,亦即連同次目彔下的全部檔案、目錄
都更新成爲這個羣組之意。經常用在變動某一目彔內全部的檔案之狀況。
範例:
[root@www ~]# chgrp users install.log
[root@www ~]# ls -l
-rw-r--r-- 1 root users 68495 Jun 25 08:53 install.log
[root@www ~]# chgrp testing install.log
chgrp: invalid group name `testing' <== 發生錯諢訊息囉~找丌到這個羣組
名~
備註Ubuntu目錄結構
/ 根目錄
bin //系統程序
boot //內核和啓動程序,全部和啓動相關的文件都保存在這裏
grub //引導器相關文件
dev //設備文件
etc //系統軟件的啓動和配置文件,系統在啓動過程當中須要讀取的文件都在這個目錄。如LILO參數、用戶帳戶和密碼。
home //用戶的主目錄。下面是本身定義的用戶名的文件夾
lib //系統程序庫文件,這個目錄裏存放着系統最基本的動態連接共享庫,相似於Windows下的system32目錄,幾乎全部的應用程序都須要用到這些共享庫。
media //掛載媒體設備,如光驅、U盤等
mnt //目錄是讓用戶臨時掛載別的文件系統,如掛載Windows下的某個分區,ubuntu默認仍是掛載在/media目錄。
opt //可選的應用軟件包(不多使用)
proc //這個目錄是系統內存的映射,咱們能夠直接訪問這個目錄來獲取系統信息。也就是說,這個目錄的內容不在硬盤上而是在內存裏。
sbin //管理員系統程序
selinux
srv
sys //udev用到的設備目錄樹,/sys反映你機器當前所接的設備
tmp //臨時文件夾
usr //這是個最龐大的目錄,咱們要用到的不少應用程序和文件幾乎都存放在這個目錄下。]
bin // 應用程序
game //遊戲程序
include
lib //應用程序的庫文件
lib64
local //包含用戶程序等
sbin //管理員應用程序
share //應用程序資源文件
src //源代碼
var //動態數據,全部服務的登陸文件或錯誤信息文件(log file)都在 /var/log下。此外一些數據庫,如MYSQL則在/var/lib下,還有用戶未讀郵件的默認存放地點爲/var/spool/mail。
lost_found //磁盤修復文件,存放因非法關機而丟失的文件