4591566 发表于 2018-5-11 11:08:36

Linux系统管理_基本权限和归属

Linux系统管理_基本权限和归属-Redhat Enterprise 5
  

      文件和目录在linux系统中是最为重要的,经常使用root用户登录系统可能没感觉,一旦使用普通用户的时候,就会发现权限这个很棘手的问题,最近一段时间在学习关于文件和目录的权限,想了一下,可以从这四个方面来总结一下:
  一基本权限和归属关系
  二,文件和目录的权限
  三,权限的设置:chmod,umask,mkdir -m
  四,文件和目录的所有者和所属组:chown,chgrp
  扩展:
  Linux系统管理_用户和用户组:http://murongqingqqq.blog.51cto.com/2902694/1360239
  Linux系统管理_附加控制权限:http://murongqingqqq.blog.51cto.com/2902694/1360874
  Linux系统管理_ACL访问控制:http://murongqingqqq.blog.51cto.com/2902694/1361506
  

  一 :基本权限和归属关系
  1,访问权限:
  -读取:允许查看内容-read
  -写入:允许修改内容-write
  -可执行:允许运行和切换-excute
  注:可执行权限对于目录来说,对应的位置有x权限,意为是否可进入该目录;
  而对于文件来说,有x权限,意为该文件可执行,如程序(命令)的所有者权限中都有x权限。
  

  2,归属关系:
  -属主:拥有此文件或目录的用户-user
  -属组:拥有此文件或目录的组-group
  -其他用户:除属主、属组以外的用户-other
  

  最终权限:访问权限和归属关系共同决定最终权限
  

  二:文件和目录的权限
  # 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 [+ - =] 文件/目录
chmod 文件/目录(n代表权限的数字形式)
  常用选项:-R :递归更改权限
           - -reference=:以指定文件或目录做模板(这个不重要)
  示例:
  1,修改Desktop的相关属性,分别使用字符权限和数字权限进行设置
  #ll -d Desktop/
  drwxr-xr-x 3 rootroot 4096 02-16 03:40 Desktop/
  #chmod g+w,o-rx Desktop/
  #ll -d Desktop/
  drwxrwx--- 3 rootroot 4096 02-16 03:40 Desktop/
  #chmod 755 Desktop/
  #ll -d Desktop/
  drwxr-xr-x 3 rootroot 4096 02-16 03:40 Desktop/
  

  2,创建一个可执行文件,并赋予所有者x权限
  #echo "echo Hello World" > test.sh
  #ll -lh test.sh
  -rw-r--r-- 1 rootroot 17 02-18 21:12 test.sh
  # chmod +x test.sh    //+x默认为所有者添加该权限
  #ll -lh test.sh
  -rwxr-xr-x 1 rootroot 17 02-18 21:12 test.sh
  #./test.sh
  Hello World
  #
  

  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
  示例:
  # umask
  0022
  # mkdir mulu1
  # touch file1.txt
  # 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
  # umask 0027//将umask值设置为0027
  # umask
  0027      //修改之后umask值为0027
  # mkdir mulu2   //修改umask值后再次创建目录
  # touch file2.txt //修改umask值后再次创建文件
  # 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/
  #
  可以看到umask值设置为0027之后,那么创建的目录和文件的权限方面other用户将不再拥有任何权限。
  

  3,mkdir -m
  mkdir为创建一个目录,-m参数可以直接指定即将创建目录的权限
  mkdir
  

  

  四,文件和目录的所有者和所属组:chown,chgrp
  1,chown:设置文件或目录的归属关系
  -格式:chown 属主 文件或目录    //修改文件或目录的所有者
         chown :属组 文件或目录   //修改文件或目录的所属组
         chown 属主:属组 文件或目录   //修改文件或目录的所有者和所属组
-R选项:递归修改权限
               - -reference选项:以指定目录或文件作为模板(作为了解)
  示例:
  首先修改file1.txt的权限
  然后以file1.txt为模板修改file2.txt文件的权限所有者和所属用户组。
  # touch file1.txt
  # touch file2.txt
  # 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
  # useradd user1
  # chown user1:user1 file1.txt //修改file1.txt所有者为user1
                                                              //所属组为user1
  # ll file*
  -rw-r--r-- 1 user1user1 0 02-18 21:43 file1.txt
  -rw-r--r-- 1rootroot0 02-18 21:43 file2.txt
  # chown --reference file1.txt file2.txt   //file2.txt将会复制file1.txt的属性
  # 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 :属组文件或目录
  # 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
  # chgrp root file1.txt file2.txt//修改file1和file2的属主
  # 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
  #
  

  

  总结:
      chmod,chown,chgrp这三个命令虽然参数很少,但是总是容易搞混,不过用的多了,用的熟练了就能记住了,chmod修改的是权限,chown修改的是所属用户和组,chgrp修改的是所属组。
      最需要注意的是umask的值的设定,新建文件和文件夹时的默认权限!
  

  

  

  

  
页: [1]
查看完整版本: Linux系统管理_基本权限和归属