Linux命令 - chmod设置文件/目录权限

1. 查看权限

2.1 ll 命令与文件属性

当我们使用ll命令查看文件列表时,大致会有如下的输出:
在这里插入图片描述

输出的前十个字符是文件的属性,例如-rwxrwxrwx。其中第一个字符是文件的类型(本文就不去讨论了),后续的九个字符是文件模式,代表文件所有者(owner)、文件组所有者(group)、其他人(world)的读(r)、写(w)、执行(x)权限:
在这里插入图片描述

2.2 文件模式

设置文件模式,对文件和目录会产生以下的效果:

模式文件目录
r允许打开并读取文件内容。允许列出目录中的内容,前提是目录必须设置了可执行属性(x)。
w允许写入文件内容或截断文件。但是 不 允 许对文件进行重命名或删除,重命名或删除是由目录的属性决定的。允许在目录下新建、删除或重命名文件,前提是目录必须设置了可执行属性(x)
x允许将文件作为程序来执行,使用脚本语言编写的程序必须设置为可读才能被执行。允许进入目录,例如:cd directory 。

2.3 举点栗子

文件属性含义
-rwx-––-一个普通文件,对文件所有者来说可读、可写、可执行。其他人无法访问。
-rw-–––一个普通文件,对文件所有者来说可读可写。其他人无法访问。
-rw-r–r–一个普通文件,对文件所有者来说可读可写,文件所有者的组成员可以读该文件,其他所有人都可以读该文件。
-rwxr-xr-x一个普通文件,对文件所有者来说可读、可写、可执行。也可以被其他的所有人读取和执行。
-rw-rw-–-一个普通文件,对文件所有者以及文件所有者的组成员来说可读可写。
lrwxrwxrwx一个符号链接,符号链接的权限都是虚拟的,真实的权限应该以符号链接指向的文件为准。
drwxrwx-–一个目录,文件所有者以及文件所有者的组成员可以访问该目录,并且可以在该目录下新建、重命名、删除文件。
drwxr-x-–一个目录,文件所有者可以访问该目录,并且可以在该目录下新建、重命名、删除文件,文件所有者的组成员可以访问该目录,但是不能新建、重命名、删除文件。

2. chmod命令

使用chmod命令可以更改文件或目录的模式(权限)。命令格式为chmod <权限> <文件/目录>

注意:只有文件的所有者或超级用户才能修改文件或目录的模式。

chmod命令支持两种不同的表示法来改变文件模式:

  • 八进制数字表示法
  • 符号表示法

2.1 八进制表示法

上文中说过,文件模式可以分成3 * 3个部分(3种用户 * 3种权限),而一个八进制数代表了3个二进制数字(每个二进制数字可以表示一个权限开关),那么使用三个八进制数就可以完美代表文件权限!

八进制数与文件权限的对应关系如下:
在这里插入图片描述

举点例子:

命令文件模式
chmod 777 file_namerwxrwxrwx
chmod 666 file_namerw-rw-rw-
chmod 600 file_namerw-------
chmod 744 file_namerwxr–r–

不知道有没有人还是不能理解,这里举个例子来讲解如何去设置这三个数吧:

  1. 假设现在有一个文件(xxx.txt),我们需要设置它的权限为:
    • 文件所有者可以读、写、执行。
    • 文件组所有者可以读、写。
    • 其他人只能读。
  2. 根据上面的假设,我们需要设置的文件模式最终为:rwxrw-r--
  3. 将这9个权限字符用9个二进制数(1表示有权限,0表示没权限)来表示:111110100
  4. 将上面的9个二进制数转换成八进制数(每三个二进制数表示一个八进制数):764
  5. 那么最终命令就是:chmod 764 xxx.txt

2.2 符号表示法

chmod 命令支持一种符号表示法,来指定文件模式。符号表示法分为三部分:更改会影响
谁,要执行哪个操作,要设置哪种权限。

  1. 更改会影响谁
    符号影响谁
    u”user” 的简写,意思是文件或目录的所有者。
    g用户组。
    o”others” 的简写,意思是其他所有的人
    a”all” 的简写,是”u”, ”g” 和“o”三者的联合。
    没有指定字符等同于使用 “all”。
  2. 要执行哪个操作
    字符操作
    +加权限
    -删权限
    =只有指定的权限可用,其它所有的权限被删除
  3. 要设置什么权限
    权限由“r”、“w”和“x”来指定(这应该不需要解释了吧)~

符号表示法应该比较好理解,这里就只写一下示例好了:

  • chmod u+x file_name 为文件所有者添加可执行权限。
  • chmod u-x file_name 删除文件所有者的可执行权限。
  • chmod +x file_name 为文件所有者,用户组,和其他所有人添加可执行权限。等价于 a+x。
  • chmod o-rw file_name 除了文件所有者和用户组,删除其他人的读权限和写权限。
  • chmod go=rw file_name 给文件所属的组和文件所属者/组以外的人读写权限。如果文件所属组或其他人已经拥有执行的权限,执行权限将被移除。
  • chmod u+x,go=rw file_name 给文件拥有者执行权限并给组和其他人读和执行的权限。多种设定可以用逗号分开。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值