Linux的檔案許可權與目錄配置

2021-08-22 16:39:30 字數 4251 閱讀 3595

linux中,存在三種身份,ownergroupothers

其中,同乙個使用者可以隸屬於多個群組,乙個群組可以包含多個使用者。

使用ls -al可以檢視所有檔案目錄的屬性等資訊。

lslist的意思,重點在顯示檔案的名稱和相關屬性,-al表示列出所有檔案詳細的許可權與屬性(包含隱藏檔案,就是以小數點.開頭的)。

[root@vm_16_8_centos ~]# ls -al

total 60

dr-xr-x---. 7 root root 4096 jul 27

21:51 .

dr-xr-xr-x. 19 root root 4096 aug 11

16:50 ..

-rw------- 1 root root 1091 aug 11

16:34

.bash_history

-rw-r--r--. 1 root root 18

dec29

2013

.bash_logout

-rw-r--r--. 1 root root 176

dec29

2013

.bash_profile

-rw-r--r--. 1 root root 176

dec29

2013

.bashrc

drwxr-xr-x

3 root root 4096 apr 15

20:52

.cache

drwxr-xr-x

3 root root 4096 apr 15

20:52

.config

-rw-r--r--. 1 root root 100

dec29

2013

.cshrc

-rw------- 1 root root 35 jul 27

21:51

.lesshst

drwxr-xr-x

2 root root 4096 jul 24

00:12

.pip

-rw-r--r-- 1 root root 73 jul 24

00:12

.pydistutils

.cfg

drwx------ 2 root root 4096 apr 15

20:52

.ssh

-rw-r--r--. 1 root root 129

dec29

2013

.tcshrc

drwxr-xr-x

2 root root 4096 jul 27

21:48 test

-rw-r--r--. 1 root root 2036 aug 10

18:01 haha.log

-rw------- 1 root root 0 jul 24

00:12

.viminfo

第乙個字元代表這個檔案是目錄、檔案或鏈結檔等等:

當為[d]則是目錄;

當為[-]則是檔案;

若是[l]則表示為鏈結檔(link file);

若是[b]則表示為裝置檔裡面的可供儲存的周邊裝置(可隨機訪問裝置);

若是[c]則表示為裝置檔裡面的序列埠裝置,例如鍵盤、滑鼠(一次性讀取裝置)。

接下來的字元中,以三個為一組,且均為[rwx]的三個引數的組合。其中,[r]代表可讀(read)、[w]代表可寫(write)、[x]代表可執行(execute)。要注意的是,這三個許可權的位置不會改變,如果沒有許可權,就會出現減號[-]而已。

第一組為檔案擁有者可具備的許可權;第二組為加入此群組之帳號的許可權;第三組為非本人且沒有加入本群組之其他帳號的許可權。

每個檔案都會將他的許可權與屬性記錄到檔案系統的i-node中,不過,我們使用的目錄樹卻是使用檔名來記錄,因此每個檔名就會鏈結到乙個i-node囉!這個屬性記錄的,就是有多少不同的檔名鏈結到相同的乙個i-node號碼去就是了。

如果想要顯示完整的時間格式,可以利用ls的選項,ls -l --full-time就能夠顯示出完整的時間格式了,包括年、月、日、時間。

chgrp :改變檔案所屬群組

chown :改變檔案擁有者

chmod :改變檔案的許可權, suid, sgid, sbit等等的特性

[root@vm_16_8_centos ~]# chgrp [-r] dirname/filename ... 

選項與引數:

-r: 進行遞迴(recursive)的持續變更,亦即連同次目錄下的所有檔案、目錄都更新成為這個群組之意。常常用在變更某一目錄內所有的檔案之情況。

[root@vm_16_8_centos ~]# chgrp users haha.log

要被改變的群組名稱必須要在/etc/group檔案內存在才行,否則就會顯示錯誤!

[root@vm_16_8_centos ~]# chown [-r]帳號名稱檔案或目錄 

[root@vm_16_8_centos ~]# chown [-r]帳號名稱:群組名稱檔案或目錄

選項與引數:

-r: 進行遞迴(recursive)的持續變更,亦即連同次目錄下的所有檔案都變更

[root@study ~]# chown moon haha.log

可以使用數字來代表各個許可權,各許可權的分數為:r:4,w:2,x:1。

每種身份(owner/group/others)各自的三個許可權(r/w/x)分數是需要累加的,例如當許可權為[-rwxrwx---]時,分數是:

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others= — = 0+0+0 = 0

所以設定許可權的變更時,該檔案的許可權數字就是770,變更許可權的指令chmod的語法是這樣的:

[root@vm_16_8_centos ~]# chmod [-r] xyz檔案或目錄

選項與引數:

xyz : 就是剛剛提到的數字型別的許可權屬性,為rwx 屬性數值的相加。

-r: 進行遞迴(recursive)的持續變更,亦即連同次目錄下的所有檔案都會變更

[root@vm_16_8_centos ~]# chmod 777 haha.log

九個許可權分別是usergroupothers這三種身份,那麼可以用u, g, o來代表三種身份的許可權,另外,a代表all亦即全部的身份。

chmod

u g

o a

+(加入)

-(除去)

=(設定)

r w

x 檔案或目錄

假如要設定乙個檔案的許可權成為-rwxr-xr-x時,基本上就是:

user (u):具有可讀、可寫、可執行的許可權;group 與others (g/o):具有可讀與執行的許可權。

所以就是:

[root@vm_16_8_centos ~]# chmod u=rwx,go=rx haha.log
注意那個u=rwx,go=rx是連在一起的,中間並沒有任何空白字元!

另外,如果不知道原先的檔案屬性,而只想要增加haha.log這個檔案的每個人均可寫入的許可權,那麼我就可以使用:

[root@vm_16_8_centos ~]# chmod a+w haha.log
而如果是要將許可權去掉而不更動其他已存在的許可權,例如要拿掉全部人的可執行許可權,則:

[root@vm_16_8_centos ~]# chmod a-x haha.log
1

1

Linux檔案許可權與目錄配置

使用者組概念 假如主機有兩個團體,第乙個團體名為projecta,裡面有class1,class2,class3 第二個團體名為projecb,裡面有class4,class5,class6.這兩個團體之間有競爭性質,卻要交同乙份報告。每組成員之間必須能夠互相修改對方的資料,但是其他組的成員則不能看...

Linux 目錄配置與檔案許可權

linux是目前應用最廣泛的伺服器作業系統,基於unix,開源免費,由於系統的穩定性和安全性,市場占有率很高,幾乎成為程式 執行的最佳系統環境。etc etcetera 存放系統配置檔案 bin binaries 存放二進位制可執行檔案 sbin super user binaries 存放二進位制...

Linux檔案許可權與目錄配置

使用者組概念 假如主機有兩個團體,第乙個團體名為projecta,裡面有class1,class2,class3 第二個團體名為projecb,裡面有class4,class5,class6.這兩個團體之間有競爭性質,卻要交同乙份報告。每組成員之間必須能夠互相修改對方的資料,但是其他組的成員則不能看...