linux中,存在三種身份,owner
,group
,others
。
其中,同乙個使用者可以隸屬於多個群組,乙個群組可以包含多個使用者。
使用ls -al
可以檢視所有檔案目錄的屬性等資訊。
ls
是list
的意思,重點在顯示檔案的名稱和相關屬性,-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
九個許可權分別是user
,group
,others
這三種身份,那麼可以用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.這兩個團體之間有競爭性質,卻要交同乙份報告。每組成員之間必須能夠互相修改對方的資料,但是其他組的成員則不能看...