Linux-文件權限與目錄配置

2.文件權限與目錄配置

本章同步視頻:https://edu.51cto.com/sd/e4874

2.1 三類用戶

0.rootphp

1.文件擁有者html

2.同組用戶vim

3.其餘用戶網絡

2.2 文件權限

2.2.1 文件屬性

[root@localhost ~]# ls -lsocket

total 548ide

-rw-------. 1 root root   1416 Oct 28  2018 anaconda-ks.cfgoop

-rw-r--r--. 1 root root   1467 Oct 27  2018 initial-setup-ks.cfgui

-rw-r--r--. 1 root root 550255 Oct 11 14:15 練習平臺試題說明書.pdfspa

    文件   鏈   屬  屬    文件     文件修改時間        文件名3d

    權限   接   主  組    大小

              數

2.2.2 chgrp - change group ownership

chgrp [OPTION]... GROUP FILE...

chgrp [OPTION]... --reference=RFILE FILE...

1.正常操做

[root@localhost tmp]# ll aaa                 #ls -l的別名

-rw-r--r--. 1 root root 0 Feb 26 19:58 aaa    #屬組爲root

[root@localhost tmp]# chgrp calf aaa          #將屬組修改成calf

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root calf 0 Feb 26 19:58 aaa     #屬組爲calf

2.注意事項

(1)屬組必須存在

[root@localhost tmp]# chgrp group1 aaa

chgrp: invalid group: ‘group1’               #組group1不存在

(2)只有root能完成

[calflyok@localhost ~]$ ll aaa

-rw-rw-r--. 1 calflyok calflyok 0 Feb 26 20:02 aaa

[calflyok@localhost ~]$ chgrp calf aaa

chgrp: changing group of ‘aaa’: Operation not permitted   

#文件擁有者亦無權執行該命令

2.2.3 chown - change file owner and group

chown [OPTION]... [OWNER][:[GROUP]] FILE...

1.正常修改擁有者

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root calf 0 Feb 26 19:58 aaa    #擁有者爲root

[root@localhost tmp]# chown calf aaa

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 calf calf 0 Feb 26 19:58 aaa     #擁有者變爲calf

2.同時修改擁有者和屬組

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 calf calf 0 Feb 26 19:58 aaa

[root@localhost tmp]# chown root:root aaa

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root root 0 Feb 26 19:58 aaa

3.注意事項

(1)用戶必須存在

[root@localhost tmp]# chown own aaa

chown: invalid user: ‘own’                       #own用戶不存在

(2)只有root能執行

[calflyok@localhost ~]$ ll aaa

-rw-rw-r--. 1 calflyok calflyok 0 Feb 26 20:02 aaa

[calflyok@localhost ~]$ chown root aaa

chown: changing ownership of ‘aaa’: Operation not permitted

2.2.4 chmod - change file mode bits

chmod [OPTION]... MODE[,MODE]... FILE...

chmod [OPTION]... OCTAL-MODE FILE...

1.數字模式

r:4  w:2  x:1

(1)修改單個文件權限

[root@localhost tmp]# ll aaa

-rw-r--r--. 1 root root 0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod 666 aaa

[root@localhost tmp]# ll aaa

-rw-rw-rw-. 1 root root 0 Feb 26 19:58 aaa

(2)修改整個目錄權限

[root@localhost tmp]# ls -al bbb

total 8

drwxr-xr-x. 2 root root 4096 Feb 26 20:24 .

drwxrwxrwt. 9 root root 4096 Feb 26 20:24 .. 

#父目錄不在修改範圍內

-rw-r--r--. 1 root root    0 Feb 26 20:24 ccc

[root@localhost tmp]# chmod -R 666 bbb

[root@localhost tmp]# ls -al bbb

total 8

drw-rw-rw-. 2 root root 4096 Feb 26 20:24 .

drwxrwxrwt. 9 root root 4096 Feb 26 20:24 .. 

#父目錄不在修改範圍內

-rw-rw-rw-. 1 root root    0 Feb 26 20:24 ccc

2.字符模式

chmod

u

g

o

a

+(加入)

-(除去)

=(設定)

r

w

x

檔案或目錄

 

(1)全部用戶增長執行權限

[root@localhost tmp]# ll ll aaa

-rw-rw-rw-. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod a+x aaa

[root@localhost tmp]# ll aaa

-rwxrwxrwx. 1 root root    0 Feb 26 19:58 aaa

(2)全部用戶去掉執行權限

[root@localhost tmp]#  ll aaa

-rwxrwxrwx. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod a-x aaa

[root@localhost tmp]#  ll aaa

-rw-rw-rw-. 1 root root    0 Feb 26 19:58 aaa

(3)全部用戶設定爲只讀

[root@localhost tmp]#  ll aaa

-rw-rw-rw-. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod a=r aaa

[root@localhost tmp]#  ll aaa

-r--r--r--. 1 root root    0 Feb 26 19:58 aaa

(4)擁有者增長寫和執行,其餘用戶設定爲可讀可寫

[root@localhost tmp]# ll aaa

-r--r--r--. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod u+wx,o=rw aaa

[root@localhost tmp]# ll aaa

-rwxr--rw-. 1 root root    0 Feb 26 19:58 aaa

(5)去掉其餘用戶的全部權限

[root@localhost tmp]# ll aaa

-rwxr--rw-. 1 root root    0 Feb 26 19:58 aaa

[root@localhost tmp]# chmod o= aaa

[root@localhost tmp]#  ll aaa

-rwxr-----. 1 root root    0 Feb 26 19:58 aaa

3.注意事項

文件擁有者能夠無視權限,強行讀寫文件屬性和內容。

[calflyok@localhost ~]$ chmod a= aaa

[calflyok@localhost ~]$  ll aaa

----------. 1 calflyok calflyok 0 Feb 26 20:02 aaa

[calflyok@localhost ~]$ vim aaa

[calflyok@localhost ~]$ cat aaa

aaaaa

2.2.5 目錄與檔案之權限意義

1.權限對檔案的重要性

u  r (read):可讀取此一檔案的實際內容,如讀取文本文件的文字內容等;

u  w (write):能夠編輯、新增或者是修改該檔案的內容(但不含刪除該檔案);

u  x (execute):該檔案具備能夠被系統執行的權限。

2.權限對目錄的重要性

u  r (read contents in directory):表示具備讀取目錄結構列表的權限,能夠查詢該目錄下的文件名數據。 如使用ls命令!

u  w (modify contents of directory):

l  創建新的檔案與目錄;

l  刪除已經存在的檔案與目錄(不論該檔案的權限爲什麼!)

l  將已存在的檔案或目錄進行改名;

l  搬移該目錄內的檔案、目錄位置。

u  x (access directory):表明的是用戶可否進入該目錄成爲工做目錄! 如使用cd命令!

2.2.6 Linux檔案種類與擴展名

1.檔案種類:

u  正規檔案(regular file ):第一個字符爲 [ - ] 。

u  目錄(directory):第一個屬性爲 [ d ] 。

u  連結檔(link):第一個屬性爲 [ l ] 。

u  設備與裝置文件(device):一般都在/dev目錄下。

l  區塊(block)設備檔 :第一個屬性爲[ b ]!

l  字符(character)設備檔:第一個屬性爲 [ c ]。

u  資料接口文件(sockets):第一個屬性爲 [ s ], 最常在/run或/tmp。

u  數據輸送文件(FIFO, pipe):第一個屬性爲[p] 。

2.Linux檔案擴展名:

Linux的檔案是沒有所謂的『擴展名』的,一個Linux檔案能不能被執行,與他的第一欄的十個屬性有關, 與文件名根本一點關係也沒有。

l  *.sh : 腳本或批處理文件 (scripts) ;

l  *Z, *.tar, *.tar.gz, *.zip, *.tgz: 通過打包的壓縮文件。

l  *.html, *.php:網頁相關檔案,分別表明 HTML 語法與 PHP 語法的網頁檔案。

3.Linux檔案長度限制

單一檔案或目錄的最大允許文件名爲 255bytes,以一個 ASCII 英文佔用一個 bytes 來講,則大約可達 255 個字符長度。如果以每一箇中文字佔用 2bytes 來講, 最大檔名就是大約在 128 箇中文字!

4.Linux文件名的限制

因爲Linux在文字接口下的一些指令操做關係,通常來講,在設定Linux底下的文件名時, 最好能夠避免一些特殊字符比較好!

* ? > < ; & ! [ ] | \ ' " ` ( ) { }-+

2.3 Linux目錄配置

2.3.1 目錄介紹

目錄

應放置檔案內容

第一部份:FHS 要求必需要存在的目錄

/bin

/bin放置的是在單人維護模式下還可以被執行的命令。

/boot

這個目錄主要在放置開機會使用到的檔案,包括Linux核心檔案以及開機選單與開機所需配置文件等等。 Linux kernel經常使用的檔名爲:vmlinuz,若是使用的是grub2這個開機管理程序,則還會存在/boot/grub2/這個目錄!

/dev

在Linux系統上,任何裝置與接口設備都是以檔案的型態存在於這個目錄當中的。比要重要的檔案有/dev/null, /dev/zero, /dev/tty, /dev/loop*, /dev/sd*等等

/etc

系統主要的配置文件幾乎都放置在這個目錄內,例如人員的帳號密碼文件、各類服務的啓始檔等等。通常來講,這個目錄下的各文件屬性是可讓通常使用者查閱的,可是隻有root有權力修改。

/lib

系統的函式庫很是的多,而/lib放置的則是在開機時會用到的函式庫,以及在/bin或/sbin底下的指令會呼叫的函式庫而已

/media

media是『媒體』的英文,這個/media底下放置的就是可移除的裝置啦! 包括軟盤、光盤、DVD等等裝置都暫時掛載於此。

/mnt

若是妳想要暫時掛載某些額外的裝置,通常建議妳能夠放置到這個目錄中。

/opt

這個是給第三方合力軟件放置的目錄

/run

早期的 FHS 規定系統開機後所產生的各項信息應該要放置到 /var/run 目錄下,新版的 FHS 則規範到 /run 底下。

/sbin

放在/sbin底下的爲開機過程當中所須要的,裏面包括了開機、修復、還原系統所須要的指令。

/srv

srv能夠視爲『service』的縮寫,是一些網絡服務啓動以後,這些服務所須要取用的數據目錄。

/tmp

這是讓通常用戶或者是正在執行的程序暫時放置檔案的地方。這個目錄是任何人都可以存取的,因此你須要按期的清理一下。

 

第二部份:FHS 建議能夠存在的目錄

/home

這是系統默認的用戶家目錄(home directory)。在你新增一個通常使用者帳號時,默認的用戶家目錄都會規範到這裏來。比較重要的是,家目錄有兩種代號喔:

·       ~:表明目前這個用戶的家目錄

·       ~dmtsai :則表明 dmtsai 的家目錄!

/root

系統管理員(root)的家目錄。

 

目錄

應放置檔案內容

/lost+found

這個目錄是使用標準的ext2/ext3/ext4文件系統格式纔會產生的一個目錄,目的在於當文件系統發生錯誤時,將一些遺失的片斷放置到這個目錄下。不過若是使用的是 xfs 文件系統的話,就不會存在這個目錄了!

/proc

這個目錄自己是一個『虛擬文件系統(virtual   filesystem)』喔!他放置的數據都是在內存當中,例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等。由於這個目錄下的數據都是在內存當中,因此自己不佔任何硬盤空間啊!比較重要的檔案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts,   /proc/ioports, /proc/net/* 等等。

/sys

這個目錄其實跟/proc很是相似,也是一個虛擬的文件系統,主要也是記錄核心與系統硬件信息較相關的信息。包括目前已加載的核心模塊與核心偵測到的硬件裝置信息等等。這個目錄一樣不佔硬盤容量喔!

 

2.3.2 目錄樹

 

                                              image.png 

 

2.4 總結

l  Linux下除了root外,還有三類用戶,分別是文件擁有者、同組用戶和其餘用戶。

l  文件的擁有者是能夠改變的,使用的命令是chown。

l  文件的屬組也是能夠改變的,使用的命令是chgrp。

l  文件的常規權限是讀(read)、寫(write)和執行(execute)。

l  文件的權限是能夠修改的,使用的命令是chmod。

l  文件的權限修改有數字模式和字符模式兩種。

l  文件的讀權限表示能夠查看文件內容,文件的寫權限表示能夠修改文件內容,文件的執行權限表示能夠執行該文件,文件的刪除不屬於讀寫執行權限。

l目錄的讀權限表示能夠查看目錄內容,目錄的寫權限表示能夠變更目錄內的內容,目錄的執行權限表示能夠進入目錄。

相關文章
相關標籤/搜索