您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關linux中文件權限與目錄配置的示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
===一個簡單的ls -al的例子:===
-rw-r–r–. 1 root root 57494 Oct 1 08:08 install.log
第一列表示文件的權限,共有10個字符組成。第一個字符表示文件類型:
d:表示目錄;-:表示是文件;l表示是鏈接文件linkfile;b表示塊設備文件(設備文件里面的可供存儲的接口設備);c表示字符設備文件(設備文件中的串行端口設備,例如鍵盤、鼠標等一次性讀取設備),s表示套接字sockets文件,p表示管道FIFO文件。接下來三個一組,分別代表owner、group、other的權限。
第二列表示有多少文件名連接到此節點(inode)
第三列和第四列分別表示owner和group名稱
第五列表示文件大小,單位是字節bytes/B
第六列表示文件創建日期或者最近修改日期,如果修改日期離現在太久了,就只顯示年月日信息。可以用參數 ls -al –full-time顯示完整時間。
第七列就是文件名了,如果有個.前綴的話表示隱藏文件。
===修改文件屬性===
chown:改變文件的owner,隨便還可以修改group
用法:chown [-R] ownner:group dirname/filename,其中-R表示遞歸修改目錄以及該目錄下的所有文件屬性。
chgrp:修改文件的group
用法:chgrp [-R] group dirname/filename
===修改文件權限===
chmod:可以使用數字或者符號兩種方式進行權限的更改。
用法:注意,u代表owner,g代表group,o代表other,a代表all
數字形式:chmod [-R] 777 dirname/filename;
=號形式:chmod [-R] u=rwx,go=rx dir/file;
+-形式:chmod [-R] u-r,g+w,a-r dir/file
===目錄與文件的權限意義===
對文件的意義:
r:可讀取文件內容
w:可編輯、新增或者修改文件的內容,注意,是文件的內容。但不含刪除該文件
x:可被系統執行
對目錄的意義:
r:讀取該目錄結構列表的權限,當你具有r一個目錄的權限時,表示你可以查詢該目錄下的文件名數據,可以用ls命令列出目錄下文件名列表
w:這個可寫入權限對目錄來說很強大,具有更改目錄結構列表的權限,也就是可以在該目錄里面新建新的文件和目錄,刪除該目錄下的文件和目錄(不論該文件的權限為何);將已存在的文件或目錄重命名;轉移該目錄內的文件、目錄的位置。
x:進入該目錄,使得該目錄成為當前工作目錄的權限。要想能查看某個目錄下文件內容, 必須對該目錄具備x權限才行。
===目錄配置標準FHS===
FHS標準建議:根目錄(/)所在的分區應該越小越好,且應用程序所安裝的軟件最好不要與根目錄放在同一個分區,保持根目錄越小越好。如此不但性能較好,根目錄所在的文件系統也不容易發生問題。有鑑於上述的說明,因此FHS定義出根目錄(/)底下應該要有底下這些次目錄的存在才好:
目錄 | 應該放置文件內容 |
/bin | 系統有很多放置執行檔的目錄,但/bin比較特殊。因為/bin放置的是在單人維護模式下還能比操作的指令。在/bin地下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。 |
/boot | 這個目錄主要放置開關機使用到的檔案,包括linux核心檔案以及開機選單與關機所需設定檔等。linux kerne常用的檔名為:vmlinuz,如果使用的是grub這個開機管理程序,則還會存在/boot/grub這個目錄。 |
/dev | 在linux系統上,任何設備都是以檔案的形態存在于這個目錄中,比較重要的有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等。 |
/etc | 系統主要的配置文件幾乎都在這個目錄內,例如人員的賬號與密碼、 各種服務的啟動文件。一般來說,這個目錄下的文件一般用戶只能看,而只有root可以修改和執行。FHS建議不要放置可執行文件(binary)在這個目錄中。比較重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目錄有:
|
/home | 系統家目錄。比較重要的是,家目錄有兩種代號: ~:目前使用者的家目錄 ~yidao:代表 yidao的家目錄! |
/lib | 系統的函數庫非常的多,而/lib放的是開機要用到的函數庫, 以及在/bin或/sbin底下的指令會調用的函數庫。 尤其重要的是/lib/modules/這個目錄, 因為該目錄會放kernel相關的驅動程序模塊等! |
/media | media是『媒體』的英文,顧名思義,這個/media底下放置的就是可移除的裝置啦! 包括軟盤、光盤、DVD等等裝置都暫時掛載于此。常見的有:/media/floppy, /media/cdrom等等。 |
/mnt | 暫時掛載用,一般建議妳可以放置到這個目錄中。 在古早時候,這個目錄的用途與/media相同啦!只是有了/media之後,這個目錄就暫時掛載用 |
/opt | 第三方軟件目錄。 舉例來說,KDE這個桌面管理系統是一個獨立的計劃,不過它可以安裝到Linux系統中,因此KDE的軟件就建議放置到此目錄下了。 另外,你想自行安裝額外的軟件(非原本的distribution提供的),那么也能夠將你的軟件安裝到這里來。不過,以前的Linux系統中,我們還是習慣放在在/usr/local目錄下呢! |
/root | 系統管理員(root)的家目錄。之所以放在這里,是因為如果進入單人維護模式而僅掛載根目錄時, 該目錄就能夠擁有root的家目錄,所以我們希望root的家目錄與根目錄放置在同一個分區中。 |
/sbin | Linux有非常多指令是用來設定系統環境的,這些指令只有root才能夠利用來『設定』系統,其他使用者最多只能用來『查詢』而已。 放在/sbin底下的為開機過程中所需要的,里面包括了開機、修復、還原系統所需要的指令。 至於某些服務器軟件,一般放置到/usr/sbin/中。至于本機自行安裝的軟件的系統執行文件(system binary), 放置到/usr/local/sbin/中了。常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。 |
/srv | srv可以視為『service』的縮寫,是一些網絡服務器啟動之后,這些服務所需要取用的資料目錄。 常見的服務例如WWW, FTP等等。舉例來說,WWW服務器需要的網頁資料就可以放置在/srv/www/裡面。 |
/tmp | 讓一般使用者或者正在執行的程序放置文件的地方。 這個目錄是任何人都能夠存取的,所以你需要定期的清理一下。當然,重要資料不可放置在此目錄啊! 因為FHS甚至建議在開機時,刪除/tmp下所有文件! |
事實上FHS針對根目錄的標準就僅有上面的咚咚,不過我們的Linux底下還有許多目錄你也需要了解一下的。 底下是幾個在Linux中也是非常重要的目錄喔:
目錄 | 應放置文件內容 |
/lost+found | 這個目錄是使用標準的ext2/ext3文件系統格式才會產生的一個目錄,目的在于文件系統發生錯誤時, 將一些遺失的片段放置到這個目錄下。這個目錄通常在分隔槽的最頂端, 例如你加裝一顆硬盤在/disk中,那在這個系統下就會自動產生一一個這樣的目錄『/disk/lost+found』 |
/proc | 這個目錄本事是一個『虛擬的文件系統(virtual filesystem)』喔!他放置的資料都在內存中, 例如系統核心、進程(process)、周邊裝置的狀態及網絡狀態等等。因為這個目錄下的資料都是在內存中, 所以本身不占任何硬盤空間啊!比較重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。 |
/sys | 這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要也是記錄與核心相關的資料。 包括目前已載入的核心模組與核心檢測到的硬件信息等等。這個目錄同樣不占硬盤空間 |
* /usr的意義和內容:
usr是Unix Software Resource的縮寫。根據FHS的基本定義,/usr里面放置的數據屬于可分享的并且不可變的的(shareable,static),系統所有默認的軟件(distribution發布者提供的軟件)都會放置在/usr下面,因此這個目錄有點類似win中的C:\Program Files目錄。一般來講,/usr子目錄如下:
目錄 | 應該放置文件內容 |
/usr/X11R6/ | 為X Window System重要資料所放置的目錄,之所以取名為X11R6是因為最后的X版本為第11版,且該版的第6次釋出之意。 |
/usr/bin/ | 絕大部分的使用者可使用指令都放在這里!請注意到他與/bin的不同之處。(是否與開機過程有關) |
/usr/include/ | c/c++等程式語言的頭文件(header)與包含檔(include)放置處,當我們以tarball方式 (*.tar.gz 的方式安裝軟件)安裝某些資料時,會使用到里頭的許多包含檔喔! |
/usr/lib/ | 包含各應用程序的函數庫、目標文件(object file),以及不被一般使用者慣用的執行文件或腳本(script)。 某些軟件會提供一些特殊的指令來進行服務器的設定,這些指令也不會經常被系統管理員操作, 那就會被擺放到這個目錄下啦。要注意的是,如果你使用的是X86_64的Linux系統, 那可能會有/usr/lib64/目錄產生喔! |
/usr/local/ | 系統管理員在本機自行安裝自己下載的軟件(非distribution預設提供者),建議安裝到此目錄, 這樣便于管理。舉例來說,你的distribution提供的軟件較舊,你想安裝較新的軟件但又不想移除舊版, 此時你可以將新版軟件安裝于/usr/local/目錄下,可與原先的舊版軟件有分別啦! 你可以自行到/usr/local去看看,該目錄下也是具有bin, etc, include, lib…的次目錄喔! |
/usr/sbin/ | 非系統正常運作所需要的系統指令。最常見的就是某些網絡服務器軟件的服務指令(daemon)! |
/usr/share/ | 放置共享文件的地方,在這個目錄下放置的資料幾乎是不分硬件架構均可讀取的資料, 因為幾乎都是文字文件嘛!在此目錄下常見的還有這些次目錄:
|
/usr/src/ | 一般原始碼建議放這里,src有source的意思。至於核心原始碼則建議放置到/usr/src/linux/目錄下。 |
* /var的意義與內容:
如果/usr是安裝時會占用較大硬盤的目錄,那么/var就是在系統運行后才會漸漸占用硬盤容量的目錄。因為/var目錄主要針對常態性變動文件,包括緩存cache、登陸文件日子log file以及某些軟件運行所產生的文件,包括程序文件(lock file,run file),或者例如mysql數據庫的文件。常見的子目錄為:
目錄 | 應放置文件內容 |
/var/cache/ | 應用程序本身運作過程中會產生的臨時文件; |
/var/lib/ | 程序本身執行過程中,需要使用的資料文件放在這個目錄。在此目錄下各自的軟件應該要有各自的目錄。舉例來說,MySQL的資料庫放置到/var/lib/mysql/而rpm的資料庫則放到/var/lib/rpm去! |
/var/lock/ | 某些裝置或者是文件資源一次只能被一個應用程序所使用,如果同時有兩個程式使用該裝置時, 就可能產生一些錯誤的狀況,因此就得要將該裝置上鎖(lock),以確保該裝置只會給單一軟件所使用。 舉例來說,刻錄機正在刻錄一張光盤,你想一下,會不會有兩個人同時在使用一個刻錄機刻盤? 如果兩個人同時刻錄,那片子寫入的是誰的資料?所以當第一個人在刻錄時該刻錄機會上鎖, 第二個人就得要該裝置被解除鎖定(就是前一個人用完了)才能夠繼續使用。 |
/var/log/ | 重要到不行!登錄日志文件放置的目錄!里面比較重要的如/var/log/messages, /var/log/wtmp(記錄登錄者的訊息)等。 |
/var/mail/ | 放置個人email信箱的目錄,不過這個目錄也被放置到/var/spool/mail/目錄中! 通常這兩個目錄是互為連接檔啦! |
/var/run/ | 某些程式或者是服務啟動后,會將他們的PID放置在這個目錄下喔! 至於PID的意義我們會在后續提到的。 |
/var/spool/ | 這個目錄通常放置一些隊列資料,所謂的『隊列』就是排隊等待其他程式使用的資料啦!這些資料被使用后通常都會被刪除。舉例來說,系統收到新信會放置到/var/spool/mail/中, 但使用者收下該信件后該封信原則上就會被刪除。信件如果暫時寄不出去會被放到/var/spool/mqueue/中, 等到被送出后就被刪除。如果是工作排程資料(crontab),就會被放置到/var/spool/cron/目錄中! |
=========END========
感謝各位的閱讀!關于“linux中文件權限與目錄配置的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。