zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux:【chmod (change mode) : 修改用户的权限】【chown (change owner) : 修改所属用户与组】

Linux权限 用户 修改 mode Change chmod 所属
2023-09-27 14:20:40 时间

一、文件权限

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录(directory)
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中:

  • r 代表可读(read)、
  • w 代表可写(write)、
  • x 代表可执行(execute)。
  • 如果没有权限,就会出现减号 - 而已。

要注意的是,这三个权限的位置不会改变
在这里插入图片描述
每个文件的属性由左边第一部分的 10 个字符来确定(如下图)。
在这里插入图片描述
从左至右用 0-9 这些数字来表示。

  • 第 0 位确定文件类型,
  • 第 1-3 位确定属主(该文件的所有者)拥有该文件的权限。
  • 第4-6位确定属组(所有者的同组用户)拥有该文件的权限
  • 第7-9位确定其他用户拥有该文件的权限。

其中:

  • 第 1、4、7 位表示读权限,如果用 r 字符表示,则有读权限,如果用 - 字符表示,则没有读权限;
  • 第 2、5、8 位表示写权限,如果用 w 字符表示,则有写权限,如果用 - 字符表示没有写权限;
  • 第 3、6、9 位表示可执行权限,如果用 x 字符表示,则有执行权限,如果用 - 字符表示,则没有执行权限。

二、修改文件夹/文件权限

Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

在这里插入图片描述

只有文件所有者和超级用户可以修改文件或目录的权限。

可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
在这里插入图片描述
使用权限 : 所有使用者

1、语法

chmod [-cfvR] [--help] [--version] mode file...

2、参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:

  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
  • –help : 显示辅助说明
  • –version : 显示版本

3、符号模式

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:
在这里插入图片描述
operator 的符号模式表:
在这里插入图片描述
permission 的符号模式表:
在这里插入图片描述

4、八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
在这里插入图片描述
例如, 765 将这样解释:

  • 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
  • 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
  • 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。

5、实例

将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt

将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

为 ex1.py 文件拥有者增加可执行权限:

chmod u+x ex1.py

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

6、更多说明

在这里插入图片描述




参考资料:
linux d是什么意思
Linux chmod命令
Linux 教程