Linux系統管理_基本許可權和歸屬-RedhatEnterprise5
檔案和目錄在linux系統中是最為重要的,經常使用root使用者登入系統可能沒感覺,一旦使用普通使用者的時候,就會發現許可權這個很棘手的問題,最近一段時間在學習關於檔案和目錄的許可權,想了一下,可以從這四個方面來總結一下:
一基本許可權和歸屬關係
二,檔案和目錄的許可權
三,許可權的設定:chmod,umask,mkdir-m
四,檔案和目錄的所有者和所屬組:chown,chgrp
擴充:
Linux系統管理_附加控制許可權:
Linux系統管理_使用者和使用者組:http://www.centoscn.com/CentOS/help/2014/0220/2416.html
Linux系統管理_ACL存取控制:
一:基本許可權和歸屬關係
1,存取權限:
-讀取:允許查看內容-read
-寫入:允許修改內容-write
-可執行:允許運行和切換-excute
註:可執行許可權對於目錄來說,對應的位置有x許可權,意為是否可進入該目錄;
而對於檔案來說,有x許可權,意為該檔案可執行,如程式(命令)的所有者許可權中都有x許可權。
2,歸屬關係:
-屬主:擁有此檔案或目錄的使用者-user
-屬組:擁有此檔案或目錄的組-group
-其他使用者:除屬主、屬組以外的使用者-other
最終許可權:存取權限和歸屬關係共同決定最終許可權
二:檔案和目錄的許可權
[root@localhost/]#ll-d/etc/passwd/boot/
drwxr-xr-x4rootroot10242013-07-10/boot///目錄
-rw-r--r--1rootroot168102-1710:23/etc/passwd//檔案
12345678
第一段:d代表該目標為目錄,-代表該目標位檔案
第二段:rwxr-xr-x:檔案和目錄的許可權位
註:一共九位,前三位為user(所有者)的許可權,中間三位為group(所屬組)的許可權,最後三位為other(其他使用者)的許可權。
其中r用數字標示為4,w為2,x為1
第三段:對於檔案來說,為永久連結數;
對於目錄來說,為該目錄下有多少個目錄,其中包括隱藏目錄“.”和“..”。
第四段:為屬主,即檔案或目錄的所有者
第五段:為所屬組
第六段:檔案的大小,預設情況下單位為bit(位元組)
第七段:為最後修改的時間
第八段:檔案或目錄的名稱
三:設定基本許可權:chmod、umask和mkdir-m
1,chmod命令
-格式:chmod[ugoa][+-=][rwx]檔案/目錄
chmod[nnn]檔案/目錄(n代表許可權的數字形式)
常用選項:-R:遞迴更改許可權
--reference=:以指定檔案或目錄做模板(這個不重要)
樣本:
1,修改Desktop的相關屬性,分別使用字元許可權和數字許可權進行設定
[root@localhost~]#ll-dDesktop/
drwxr-xr-x3rootroot409602-1603:40Desktop/
[root@localhost~]#chmodg+w,o-rxDesktop/
[root@localhost~]#ll-dDesktop/
drwxrwx---3rootroot409602-1603:40Desktop/
[root@localhost~]#chmod755Desktop/
[root@localhost~]#ll-dDesktop/
drwxr-xr-x3rootroot409602-1603:40Desktop/
2,建立一個可執行檔,並賦予所有者x許可權
[root@localhost~]#echo"echoHelloWorld">test.sh
[root@localhost~]#ll-lhtest.sh
-rw-r--r--1rootroot1702-1821:12test.sh
[root@localhost~]#chmod+xtest.sh//+x預設為所有者添加該許可權
[root@localhost~]#ll-lhtest.sh
-rwxr-xr-x1rootroot1702-1821:12test.sh
[root@localhost~]#./test.sh
HelloWorld
[root@localhost~]#
2,umask命令:建立檔案或目錄的預設許可權
-一般檔案預設不給x執行許可權
-其他取決於umask設定
-umask值可以進行設定(為臨時,umask0027即講umask值設定為0027,可使用umask查看)
注1:由於檔案預設不給x許可權,所以建立一個新檔案的最大許可權為666,建立一個目錄的最大許可權為777。
注2:umask預設值為022(----w--w-),也就是說:
建立一個檔案時預設許可權為:
為rw-rw-rw-和----w--w-的差,即為rw-r--r--;即為644(註:不能用777或666減去022)
建立一個目錄時預設許可權為:
為rwxrwxrwx和----w--w-的差,即為rwxr-xr-x;即為755
樣本:
[root@localhost~]#umask
0022
[root@localhost~]#mkdirmulu1
[root@localhost~]#touchfile1.txt
[root@localhost~]#ll-dmulu1/file1.txt
-rw-r--r--1rootroot002-1821:22file1.txt//預設檔案許可權為644
drwxr-xr-x2rootroot409602-1821:21mulu1///預設目錄許可權為755
[root@localhost~]#umask0027//將umask值設定為0027
[root@localhost~]#umask
0027//修改之後umask值為0027
[root@localhost~]#mkdirmulu2//修改umask值後再次建立目錄
[root@localhost~]#touchfile2.txt//修改umask值後再次建立檔案
[root@localhost~]#ll-dmulu2/file2.txt
-rw-r-----1rootroot002-1821:28file2.txt
drwxr-x---2rootroot409602-1821:28mulu2/
[root@localhost~]#
可以看到umask值設定為0027之後,那麼建立的目錄和檔案的許可權方面other使用者將不再擁有任何許可權。
3,mkdir-m
mkdir為建立一個目錄,-m參數可以直接指定即將建立目錄的許可權
mkdir
四,檔案和目錄的所有者和所屬組:chown,chgrp
1,chown:設定檔案或目錄的歸屬關係
-格式:chown屬主檔案或目錄//修改檔案或目錄的所有者
chown:屬組檔案或目錄//修改檔案或目錄的所屬組
chown屬主:屬組檔案或目錄//修改檔案或目錄的所有者和所屬組
-R選項:遞迴修改許可權
--reference選項:以指定目錄或檔案作為模板(作為瞭解)
樣本:
首先修改file1.txt的許可權
然後以file1.txt為模板修改file2.txt檔案的許可權所有者和所屬使用者組。
[root@localhost~]#touchfile1.txt
[root@localhost~]#touchfile2.txt
[root@localhost~]#llfile*
-rw-r--r--1rootroot002-1821:43file1.txt
-rw-r--r--1rootroot002-1821:43file2.txt
[root@localhost~]#useradduser1
[root@localhost~]#chownuser1:user1file1.txt//修改file1.txt所有者為user1
//所屬組為user1
[root@localhost~]#llfile*
-rw-r--r--1user1user1002-1821:43file1.txt
-rw-r--r--1rootroot002-1821:43file2.txt
[root@localhost~]#chown--referencefile1.txtfile2.txt//file2.txt將會複製file1.txt的屬性
[root@localhost~]#llfile*
-rw-r--r--1user1user1002-1821:43file1.txt
-rw-r--r--1user1user1002-1821:43file2.txt//所有者和所屬組為和
//file1.txt相同
2,chgrp:設定檔案或目錄的所屬組
chgrp屬組檔案或目錄:修改檔案或目錄為的所屬組
註:相當於chown:屬組檔案或目錄
[root@localhost~]#llfile*
-rw-r--r--1user1user1002-1821:43file1.txt
-rw-r--r--1user1user1002-1821:43file2.txt
[root@localhost~]#chgrprootfile1.txtfile2.txt//修改file1和file2的屬主
[root@localhost~]#llfile*
-rw-r--r--1user1root002-1821:43file1.txt//屬主變為root
-rw-r--r--1user1root002-1821:43file2.txt//屬主變為了root
[root@localhost~]#
總結:
chmod,chown,chgrp這三個命令雖然參數很少,但是總是容易搞混,不過用的多了,用的熟練了就能記住了,chmod修改的是許可權,chown修改的是所屬使用者和組,chgrp修改的是所屬組。
最需要注意的是umask的值的設定,建立檔案和檔案夾時的預設許可權!