歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> CentOS系統管理_基本權限和歸屬的詳解

CentOS系統管理_基本權限和歸屬的詳解

日期:2017/3/2 16:24:58   编辑:Linux服務器

  CentOS系統管理_基本權限和歸屬的詳解

Linux系統管理_基本權限和歸屬-Redhat Enterprise 5

  文件和目錄在linux系統中是最為重要的,經常使用root用戶登錄系統可能沒感覺,一旦使用普通用戶的時候,就會發現權限這個很棘手的問題,最近一段時間在學習關於文件和目錄的權限,想了一下,可以從這四個方面來總結一下:

  一基本權限和歸屬關系

  二,文件和目錄的權限

  三,權限的設置:chmod,umask,mkdir -m

  四,文件和目錄的所有者和所屬組:chown,chgrp

  擴展:

  Linux系統管理_附加控制權限:

  Linux系統管理_用戶和用戶組:

  Linux系統管理_ACL訪問控制:

  一 :基本權限和歸屬關系

  1,訪問權限:

  -讀取:允許查看內容-read

  -寫入:允許修改內容-write

  -可執行:允許運行和切換-excute

  注:可執行權限對於目錄來說,對應的位置有x權限,意為是否可進入該目錄;

  而對於文件來說,有x權限,意為該文件可執行,如程序(命令)的所有者權限中都有x權限。

  2,歸屬關系:

  -屬主:擁有此文件或目錄的用戶-user

  -屬組:擁有此文件或目錄的組-group

  -其他用戶:除屬主、屬組以外的用戶-other

  最終權限:訪問權限和歸屬關系共同決定最終權限

  二:文件和目錄的權限

  [root@localhost/]# ll -d /etc/passwd /boot/

  drwxr-xr-x4rootroot1024 2013-07-10 /boot/ //目錄

  -rw-r--r--1rootroot 1681 02-17 10:23 /etc/passwd //文件

  1 2 3 4 5 6 7 8

  第一段: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 -d Desktop/

  drwxr-xr-x 3 rootroot 4096 02-16 03:40 Desktop/

  [root@localhost ~]#chmod g+w,o-rx Desktop/

  [root@localhost ~]#ll -d Desktop/

  drwxrwx--- 3 rootroot 4096 02-16 03:40 Desktop/

  [root@localhost ~]#chmod 755 Desktop/

  [root@localhost ~]#ll -d Desktop/

  drwxr-xr-x 3 rootroot 4096 02-16 03:40 Desktop/

  2,創建一個可執行文件,並賦予所有者x權限

  [root@localhost ~]#echo "echo Hello World" > test.sh

  [root@localhost ~]#ll -lh test.sh

  -rw-r--r-- 1 rootroot 17 02-18 21:12 test.sh

  [root@localhost ~]# chmod +x test.sh //+x默認為所有者添加該權限

  [root@localhost ~]#ll -lh test.sh

  -rwxr-xr-x 1 rootroot 17 02-18 21:12 test.sh

  [root@localhost ~]#./test.sh

  Hello World

  [root@localhost ~]#

  2,umask命令:新建文件或目錄的默認權限

  -一般文件默認不給x執行權限

  -其他取決於umask設置

  -umask值可以進行設置(為臨時,umask 0027即講umask值設置為0027,可使用umask查看)

  注1:由於文件默認不給x權限,所以創建一個新文件的最大權限為666,創建一個目錄的最大權限為777。

  注2: umask默認值為022(- - -- w-- w -),也就是說:

  新建一個文件時缺省權限為:

  為rw - rw - rw - 和- - -- w --w - 的差,即為rw - r - - r - -;即為644(注:不能用777或666減去022)

  新建一個目錄時缺省權限為:

  為rwx rwx rwx 和- - -- w --w - 的差,即為rwx r - x r - x;即為755

  示例:

  [root@localhost ~]# umask

  0022

  [root@localhost ~]# mkdir mulu1

  [root@localhost ~]# touch file1.txt

  [root@localhost ~]# ll -d mulu1/ file1.txt

  -rw-r--r--1 root root 0 02-18 21:22 file1.txt //默認文件權限為644

  drwxr-xr-x2 root root 4096 02-18 21:21 mulu1/ //默認目錄權限為755

  [root@localhost ~]# umask 0027 //將umask值設置為0027

  [root@localhost ~]# umask

  0027 //修改之後umask值為0027

  [root@localhost ~]# mkdir mulu2 //修改umask值後再次創建目錄

  [root@localhost ~]# touch file2.txt //修改umask值後再次創建文件

  [root@localhost ~]# ll -d mulu2/ file2.txt

  -rw-r-----1 root root 0 02-18 21:28 file2.txt

  drwxr-x---2 root root 4096 02-18 21:28 mulu2/

  [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 ~]# touch file1.txt

  [root@localhost ~]# touch file2.txt

  [root@localhost ~]# ll file*

  -rw-r--r-- 1 rootroot 0 02-18 21:43 file1.txt

  -rw-r--r-- 1 rootroot 0 02-18 21:43 file2.txt

  [root@localhost ~]# useradd user1

  [root@localhost ~]# chown user1:user1 file1.txt //修改file1.txt所有者為user1

  //所屬組為user1

  [root@localhost ~]# ll file*

  -rw-r--r-- 1 user1user1 0 02-18 21:43 file1.txt

  -rw-r--r-- 1root root 0 02-18 21:43 file2.txt

  [root@localhost ~]# chown --reference file1.txt file2.txt //file2.txt將會復制file1.txt的屬性

  [root@localhost ~]# ll file*

  -rw-r--r--1 user1 user1 0 02-18 21:43 file1.txt

  -rw-r--r--1 user1 user1 0 02-18 21:43 file2.txt //所有者和所屬組為和

  //file1.txt相同

  2,chgrp:設置文件或目錄的所屬組

  chgrp 屬組 文件或目錄 :修改文件或目錄為的所屬組

  注:相當於chown :屬組文件或目錄

  [root@localhost ~]# ll file*

  -rw-r--r--1 user1 user1 0 02-18 21:43 file1.txt

  -rw-r--r--1 user1 user1 0 02-18 21:43 file2.txt

  [root@localhost ~]# chgrp root file1.txt file2.txt //修改file1和file2的屬主

  [root@localhost ~]# ll file*

  -rw-r--r--1 user1 root 0 02-18 21:43 file1.txt //屬主變為root

  -rw-r--r--1 user1 root 0 02-18 21:43 file2.txt //屬主變為了root

  [root@localhost ~]#

  總結:

  chmod,chown,chgrp這三個命令雖然參數很少,但是總是容易搞混,不過用的多了,用的熟練了就能記住了,chmod修改的是權限,chown修改的是所屬用戶和組,chgrp修改的是所屬組。

  最需要注意的是umask的值的設定,新建文件和文件夾時的默認權限!

Copyright © Linux教程網 All Rights Reserved