linux目录表及功能n鸟哥,鸟哥linux私房菜_笔记_Linux的文件权限与目录配置
5.1 使用者與群組
1. 文件擁有者:
2. 群組概念:
3. 其他人的概念:
Linux 使用者身份與群組記錄的文件
默認的情況下,所有的系統上的帳號與一般身份使用者,還有那個root的相關信息, 都是記錄在/etc/passwd這個文件內的。
至于個人的密碼則是記錄在/etc/shadow這個文件下。
Linux所有的群組名稱都紀錄在/etc/group內!
這三個文件可以說是Linux系統里面帳號、密碼、群組信息的集中地!
5.2 Linux 文件權限概念
1、文件屬性
第一欄代表這個文件的類型與權限(permission):
第一個字符代表這個文件是“目錄、文件或鏈接文件等等”:
當為[ d ]則是目錄,例如上表文件名為“.config”的那一行;
當為[ - ]則是文件,例如上表文件名為“initial-setup-ks.cfg”那一行;
若是[ l ]則表示為鏈接文件(link file);
若是[ b ]則表示為設備文件里面的可供儲存的周邊設備(可隨機存取設備);
若是[ c ]則表示為設備文件里面的序列埠設備,例如鍵盤、鼠標(一次性讀取設備)。
接下來的字符中,以三個為一組,且均為“rwx” 的三個參數的組合。其中,[ r ]代表可讀(read)、[ w ]代表可寫(write)、[ x ]代表可執行(execute)。
第一組為“文件擁有者可具備的權限”,以“initial-setup-ks.cfg”那個文件為例, 該文件的擁有者可以讀寫,但不可執行;
第二組為“加入此群組之帳號的權限”;
第三組為“非本人且沒有加入本群組之其他帳號的權限”。
---------------------------------------------------------------------------------------------------------
第二欄表示有多少文件名鏈接到此節點(i-node):
每個文件都會將他的權限與屬性記錄到文件系統的i-node中,不過,我們使用的目錄樹卻是使用文件名來記錄, 因此每個文件名就會鏈接到一個i-node。
這個屬性記錄的,就是有多少不同的文件名鏈接到相同的一個i-node號碼去就是了。
-----------------------------------------------------------------------------------------------------------
第三欄表示這個文件(或目錄)的“擁有者帳號”
第四欄表示這個文件的所屬群組
第五欄為這個文件的容量大小,默認單位為Bytes;
第六欄為這個文件的創建日期或者是最近的修改日期:
這一欄的內容分別為日期(月/日)及時間。如果這個文件被修改的時間距離現在太久了,那么時間部分會僅顯示年份而已。
如果想要顯示完整的時間格式,可以利用ls的選項,亦即:“ls -l --full-time”就能夠顯示出完整的時間格式了!包括年、月、日、時間。
-----------------------------------------------------------------------------------------------------------------------
第七欄為這個文件的文件名
這個字段就是文件名了。比較特殊的是:如果文件名之前多一個“ . ”,則代表這個文件為“隱藏文件”,例如上表中的.config那一行,該文件就是隱藏文件。 你可以使用“ls”及“ls -a”這兩個指令去感受一下什么是隱藏文件。
2、如何改變文件屬性與權限
chgrp :改變文件所屬群組
chown :改變文件擁有者
chmod :改變文件的權限, SUID, SGID, SBIT等等的特性
改變所屬群組, chgrp
改變一個文件的群組:
直接以chgrp來改變即可,不過,請記得,要被改變的群組名稱必須要在/etc/group文件內存在才行,否則就會顯示錯誤!
改變文件擁有者, chown
要注意的是, 使用者必須是已經存在系統中的帳號,也就是在/etc/passwd 這個文件中有紀錄的使用者名稱才能改變。
chown的用途還滿多的,他還可以順便直接修改群組的名稱呢!此外,如果要連目錄下的所有次目錄或文件同時更改文件擁有者的話,直接加上 -R 的選項即可!語法與范例:
chown也可以使用“chown user.group file”,亦即在擁有者與群組間加上小數點“ . ”也行! 不過很多朋友設置帳號時,喜歡在帳號當中加入小數點(例如vbird.tsai這樣的帳號格式),這就會造成系統的誤判了! 所以比較建議使用冒號“:”來隔開擁有者與群組!此外,chown也能單純的修改所屬群組! 例如“chown .sshd initial-setup-ks.cfg”就是修改群組~看到了嗎?就是那個小數點的用途!
******************************************************************************************************************************
改變權限, chmod
數字類型改變文件權限:
文件權限的改變使用的是chmod這個指令,但是,權限的設置方法有兩種, 分別可以使用數字或者是符號來進行權限的變更。
----------------------------------------------------------------------------------------------------------------------------
符號類型改變文件權限:
九個權限分別是
(1)user (2)group (3)others三種身份 !
我們就可以借由u, g, o來代表三種身份的權限!此外, a 則代表 all 亦即全部的身份!那么讀寫的權限就可以寫成r, w, x
“設置”一個文件的權限成為“-rwxr-xr-x”時,基本上就是:
user (u):具有可讀、可寫、可執行的權限;
group 與 others (g/o):具有可讀與執行的權限。 所以就是:
那么假如是“ -rwxr-xr-- ”這樣的權限呢?可以使用“ chmod u=rwx,g=rx,o=r filename ”來設置。此外,如果我不知道原先的文件屬性,而我只想要增加.bashrc這個文件的每個人均可寫入的權限, 那么我就可以使用:
而如果是要將權限去掉而不更動其他已存在的權限呢?例如要拿掉全部人的可執行權限,則:
************************************************************************************************************************************
3、目錄與文件之權限意義:
權限對文件的重要性:
文件是實際含有數據的地方,包括一般文本文件、數據庫內容檔、二進制可可執行文件(binary program)等等。 因此,權限對于文件來說,他的意義是這樣的:
r (read):可讀取此一文件的實際內容,如讀取文本文件的文字內容等;
w (write):可以編輯、新增或者是修改該文件的內容(但不含刪除該文件);
x (eXecute):該文件具有可以被系統執行的權限。
那個可讀(r)代表讀取文件內容是還好了解,那么可執行(x)呢?這里你就必須要小心啦!因為在Windows下面一個文件是否具有執行的能力是借由“ 擴展名 ”來判斷的, 例如:.exe,.bat, .com 等等,但是在Linux下面,我們的文件是否能被執行,則是借由是否具有“x”這個權限來決定的!跟文件名是沒有絕對的關系的!
至于最后一個w這個權限呢?當你對一個文件具有w權限時,你可以具有寫入/編輯/新增/修改文件的內容的權限, 但并不具備有刪除該文件本身的權限!對于文件的rwx來說, 主要都是針對“文件的內容”而言,與文件文件名的存在與否沒有關系喔!因為文件記錄的是實際的數據!
權限對目錄的重要性:
目錄主要的內容在記錄文件名清單,文件名與目錄有強烈的關連啦! 所以如果是針對目錄時,那個 r, w, x 對目錄是什么意義呢?
r (read contents in directory):
表示具有讀取目錄結構清單的權限,所以當你具有讀取(r)一個目錄的權限時,表示你可以查詢該目錄下的文件名數據。 所以你就可以利用 ls 這個指令將該目錄的內容列表顯示出來!
--------------------------------------------------------------------------------------------
w (modify contents of directory):
這個可寫入的權限對目錄來說,表示你具有異動該目錄結構清單的權限,也就是下面這些權限:
創建新的文件與目錄;
刪除已經存在的文件與目錄(不論該文件的權限為何!)
將已存在的文件或目錄進行更名;
搬移該目錄內的文件、目錄位置。
總之,目錄的w權限就與該目錄下面的文件名異動有關!
-----------------------------------------------------------------------------------------------
x (access directory):
目錄的x代表的是使用者能否進入該目錄成為工作目錄的用途!
所謂的工作目錄(work directory)就是你目前所在的目錄!
舉例來說,當你登陸Linux時, 你所在的主文件夾就是你當下的工作目錄。而變換目錄的指令是“cd”(change
directory)!
先用root的身份創建所需要的文件與目錄環境
一般用戶的讀寫權限為:
目錄是744的權限設置,一般用戶應該能有 r 的權限, 但這樣的權限使用者能做啥事呢?
如果該目錄屬于用戶本身,會有什么狀況?
x 在目錄當中是與“能否進入該目錄”有關,至于那個 w 則具有相當重要的權限,因為他可以讓使用者刪除、更新、新建文件或目錄, 是
個很重要的參數
使用者操作功能與權限:
假設兩個文件名,分別是下面這樣:
/dir1/file1
/dir2
假設你現在在系統使用 dmtsai 這個帳號,那么這個帳號針對 /dir1, /dir1/file1, /dir2 這三個文件名來說,分別需要“哪些最小的權限”才能達成各項任務?
*******************************************************************************************
4、linux文件種類與擴展名
文件種類:
正規文件
純文本文件(ASCII)
二進制檔(binary)
數據格式文件(data):有些程序在運行的過程當中會讀取某些特定格式的文件,Linux在使用者登陸時,都會將登錄的數據記錄在
/var/log/wtmp那個文件內,該文件是一個data file,他能夠通過last這個指令讀出來! 但是使用cat時,會讀出亂碼~因為他是屬于
一種特殊 格式的文件
目錄(directory):第一個屬性為 [ d ]
鏈接文件(link):第一個屬性為 [ l ]
設備與設備文件(device):
區塊(block)設備文件:查一下/dev/sda看看, 會發現第一個屬性為[ b ]
字符(character)設備文件:第一個屬性為 [ c ]
數據接口文件(sockets):第一個屬性為[ s ],最常在/run或/tmp這些個目錄中看到這種文件類型.
數據輸送檔(FIFO, pipe):FIFO也是一種特殊的文件類型,他主要的目的在解決多個程序同時存取一個文件所造成的錯誤問題。 FIFO是first-in-first-out的縮寫。第一個屬性為[p] 。
---------------------------------------------------------------------------------------------------------------------------------
Linux文件擴展名:
x代表這個文件具有可執行的能力, 但是能不能執行成功,當然就得要看該文件的內容.
通常我們還是會以適當的擴展名來表示該文件是什么種類的
*.sh : 腳本或批處理文件 (scripts),因為批處理文件為使用shell寫成的,所以擴展名就編成 .sh
Z, .tar, .tar.gz, .zip, *.tgz: 經過打包的壓縮文件。這是因為壓縮軟件分別為 gunzip, tar等等的,由于不同的壓縮軟件,而取其相關的擴展名
.html, .php:網頁相關文件,分別代表 HTML 語法與 PHP 語法的網頁文件啰!
5.3 Linux 目錄配置
1、Linux目錄配置的依據--FHS
FHS針對目錄樹架構僅定義出三層目錄下面應該放置什么數據而已,分別是下面這三個目錄的定義:
/ (root, 根目錄):與開機系統有關;
/usr (unix software resource):與軟件安裝/執行有關;
/var (variable):與系統運行過程有關。
usr是Unix Software Resource的縮寫, 也就是“Unix操作系統軟件資源”所放置的目錄
2、目錄樹 (directory tree)
主要的特性有:
目錄樹的啟始點為根目錄 (/, root);
每一個目錄不止能使用本地端的 partition 的文件系統,也可以使用網絡上的 filesystem。舉例來說, 可以利用 Network File System (NFS) 服務器掛載某特定目錄等。
每一個文件在此目錄樹中的文件名(包含完整路徑)都是獨一無二的。
CentOS在根目錄下面會有什么樣子的數據?
3、絕對路徑與相對路徑
根據文件名寫法的不同,也可將所謂的路徑(path)定義為絕對路徑(absolute)與相對路徑(relative)。 這兩種文件名/路徑的寫法依據是這樣的:
絕對路徑:由根目錄(/)開始寫起的文件名或目錄名稱, 例如 /home/dmtsai/.bashrc;
相對路徑:相對于目前路徑的文件名寫法。 例如 ./home/dmtsai 或 ../../home/dmtsai/ 等等。反正開頭不是 / 就屬于相對路徑的寫法
4、CentOS 的觀察
Linux distribution 的差異性, 除了 FHS 之外,還有個 Linux StandardBase (LSB) 的標準是可以依循。
重點回顧:
要開放目錄給任何人瀏覽時,應該至少也要給予r及x的權限,但w權限不可隨便給;
能否讀取到某個文件內容,跟該文件所在的目錄權限也有關系 (目錄至少需要有 x 的權限)
請問下面的目錄與主要放置什么數據: /etc/, /boot, /usr/bin, /bin, /usr/sbin, /sbin, /dev,
/var/log, /run
/etc/:幾乎系統的所有設置文件均在此,尤其 passwd,shadow
/boot:開機配置文件,也是默認擺放核心 vmlinuz 的地方
/usr/bin, /bin:一般可執行文件擺放的地方
/usr/sbin, /sbin:系統管理員常用指令集
/dev:擺放所有系統設備文件的目錄
/var/log:擺放系統登錄文件的地方
/run:CentOS 7 以后才有,將經常變動的項目(每次開機都不同,如程序的PID)移動到內存暫存,所以 /run 并不占實際磁盤容量
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的linux目录表及功能n鸟哥,鸟哥linux私房菜_笔记_Linux的文件权限与目录配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle开审计记录变动的表,Orac
- 下一篇: linux权限值前面的d,linux中r