Linux文件与目录权限篇

 概述

在Linux系统中,每一个文件或目录都有拥有者(文件属主),都属于某个或某些组(文件属组)。

Linux给文件设定了一定的访问权限,分三级权限:文件所有者、与文件所有者同组的用户、其他用户。对文件的访问主要是三种处理操作:读取、写入和执行。

普通文件的所有权和访问权限

文件三种访问身份:是指对文件有三种访问身份:

  1. (u)ser owner:文件拥有者,文件属主;
  2. (g)roup owner:文件属组;
  3. (o)ther owner:不属于前两种的用户访问者; 

文件权限:是一种限制用户对文件操作的规则,Linux系统中文件访问权限通常分为三类:

  1. r:可读,可以使用类似cat等命令查看文件内容;
  2. w:可写,修改文件内容;
  3. x:可执行,executable,可以在命令提示符下当作命令提交给内核运行;

Linux目录的所有权和访问权限

目录三种访问身份:是指对目录也有三种访问身份:

  1. (u)ser owner:目录拥有者,目录属主;
  2. (g)roup owner:目录属组;
  3. (o)ther owner:不属于前两种的用户访问者;

目录权限:

  1. r:可以对此目录执行ls以列出目录内容;
  2. w:可以在此目录创建、删除文件;
  3. x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息。

关于目录的读权限:允许读取目录包含的内容,如果只有读权限,而没有x权限,只能列出目录下的文件或子目录名称,而不能查看其属性或者具体内容。

权限的八进制表示:

  1. 0 000 ---:无权限
  2. 1 001 --x: 执行
  3. 2 010 -w-: 写
  4. 3 011 -wx: 写和执行
  5. 4 100 r--: 只读
  6. 5 101 r-x: 读和执行
  7. 6 110 rw-: 读写
  8. 7 111 rwx: 读写执行

例如:

  1. 755:rwxr-xr-x
  2. 640:rw-r-----
  3. 660:rw-rw----
  4. 775:rwxrwxr-x

修改文件的所有权

Linux下有两个命令用于修改所有权,chgrp修改文件属组,chown修改文件属主。

chgrp命令

chgrp命令用来改变文件或目录所属的用户组,使用者必须是超级用户。一般格式:

chrgp [选项] 组名 文件名

其中,组名可以是用户组的ID,也可以是用户组的组名,但是要求组名必须在/etc/group文件中存在。文件名可以是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。

常用选项:

-R 递归式地改变指定目录及其下面的所有子目录和文件的用户组        

chown命令

chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户ID,用户组可以是组名或组ID。文件名可以使用由空格分开的文件列表,在文件名中可以包含通配符。

一般格式:

chown [选项] 用户或组 文件名

选项:

-R 递归式地改变指定目录及其所有子目录、文件的文件主。

-v 详细列出该命令所做的工作。

注意:只有超级用户才可以使用该命令。

修改文件访问权限:chmod

chmod命令是非常重要的,用于改变文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

文字设定法

命令格式

chmod [who] [+ | - | =] [mode] 文件名

命令中各选项的含义为:  

  1. 操作对象who可是下述字母中的任一个或者它们的组合:                                                                  u 表示“用户(user)”,即文件或目录的所有者。                                                                      g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。                                      o 表示“其他(others)用户”。                                                                                                  a 表示“所有(all)用户”。它是系统默认值。
  2. 操作符号可以是:
         +   添加某个权限。
         -    取消某个权限。
         =   赋予给定权限并取消其他所有权限(如果有的话)。
  3. 设置mode所表示的权限可用下述字母的任意组合:
  1. r 可读。
  2. w 可写。
  3. x 可执行。
  4. X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
  5. s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
  6. t 保存程序的文本到交换设备上。
  7. u 与文件属主拥有一样的权限。
  8. g 与和文件属主同组的用户拥有一样的权限。
  9. o 与其他用户拥有一样的权限。

文件名:以空格分开的要改变权限的文件列表,支持通配符。  

在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:

         chmod g+r,o+r example         使同组和其他用户对文件example 有读权限。

 数字设定法

  1. 0 000 ---:无权限
  2. 1 001 --x: 执行
  3. 2 010 -w-: 写
  4. 3 011 -wx: 写和执行
  5. 4 100 r--: 只读
  6. 5 101 r-x: 读和执行
  7. 6 110 rw-: 读写
  8. 7 111 rwx: 读写执行

数字设定法的一般形式为:

chmod [mode] 文件名

 文件和目录默认权限

        系统创建目录默认拥有rwxrwxrwx权限,也就是777(八进制)

        Linux为了安全起见,不允许新建的文件带有x属性,系统创建文件默认拥有rw-rw-rw-权限,也就是666(八进制)。

        而目录默认拥有777权限。即多了x执行权限

        默认文件或目录权限与掩码做减法运算,就是用户创建文件或目录的最终默认权限。

        例如:掩码是022(或者0022),则新建目录的权限是755,也就是rwxr-xr-x;新建的文件权限是644,也就是rw-r--r--。 

掩码一般拥有四位,第一位默认为0并不做改变,掩码从后三位开始

umask      查询当前掩码

umask  [权限掩码]   更改掩码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光的璃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值