写点什么

Linux 下文件目录权限操作

作者:DS小龙哥
  • 2022 年 10 月 11 日
    重庆
  • 本文字数:1773 字

    阅读完需:约 6 分钟

1.1 查看目录和文件的权限

​ 查看文件的权限:ls -l 指令。

说明 : Linux/Unix 的档案存取权限分为三级 : 档案拥有者权限、群组权限、其他用户权限。


ls -l 查看的文件或者目录信息前 10 个字符表示了文件的属性和权限信息。


​ 第 1 个字符表示文件的属性:



\


​ 第 2~10 个字符当中的每 3 个为一组,左边三个字符表示所有者权限,中间 3 个字符表示与所有者同一组的用户的权限,右边 3 个字符是其他用户的权限。这三个一组共 9 个字符,代表的意义如下:



\

1.2 chmod 命令改变权限

使用 chmod 命令可以改变文件或目录的访问权限


文件和目录的权限表示,是用 rwx 这三个字符来代表所有者、用户组和其他用户的权限。


改变权限可以使用两种方法:


第一种使用字符方式。


第二种使用数字方式。

1.2.1 数字方式


数字设定的关键是 mode 的取值,一开始许多初学者会被搞糊涂,其实很简单,我们将 rwx 看成二进制数,如果有则有 1 表示,没有则有 0 表示,那么 rwx r-x r- -则可以表示成为:111 101 100


再将其每三位转换成为一个十进制数,就是 754。


​ 例如,我们想让 123.txt 这个文件的权限为:



那么,我们先根据上表得到权限串为:rwx-rw-rw--,那么转换成二进制数就是 111 110 100,再每三位转换成为一个十进制数,就得到 764,因此我们执行命令:



执行的效果:



\


​ 按照上面的规则,rwx 合起来就是 4+2+1=7,一个 rwxrwxrwx 权限全开放的文件,数值表示为 777;而完全不开放权限的文件“---------”其数字表示为 000。下面举几个例子:


-rwx------:等于数字表示 700。


-rwxr―r--:等于数字表示 744。


-rw-rw-r-x:等于数字表示 665。


drwx―x―x:等于数字表示 711。


drwx------:等于数字表示 700。

1.2.2 递归方式改变子目录权限

如果想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R 表示启动递归处理。


示例:



修改 test_code/目录下的所有文件权限为 777。


-v 选项可以输出 chmod 执行的过程。


1.2.3 字符方式


文字设定法格式:



参数解析:


​ 操作对象 who 可是下述字母中的任一个或者它们的组合:


u 表示“用户(user)”,即文件或目录的所有者,就是自己。


g 表示“同组(group)用户”,即与文件所有者有相同组 ID 的所有用户。


o 表示“其他(others)用户”。


a 表示“所有(all)用户”。它是系统默认值。即 chmod +x 1.c 表示所有人都有可执行的权限。


​ 操作符号可以是:


  • 添加某个权限。


  • 取消某个权限。


= 赋予给定权限并取消其他所有权限(如果有的话)。


​ 设置 mode 所表示的权限可用下述字母的任意组合:


r 可读


w 可写


x 可执行


当是组合的时候,前面的 who 要指明。


修改 123.txt 的权限为 -rwxrwr:



\



一次性修改 123.txt 的权限为-rwxrwxrwx:



\

1.3 chown 命令更改某个文件/目录的所有者和属组

1.3.1 功能简介

功能:更改某个文件或目录的所有者和属组。这个命令也很常用。


例如 root 用户把自己的一个文件拷贝给用户 xl,为了让用户 xl 能够存取这个文件,root 用户应该把这个文件的所有者设为 xl,否则,用户 xl 无法存取这个文件。


​ 使用 ls -l 查看文件或者目录详细信息的时候,第 12 个字符开始属于文件和目录的所有者和群组。


示例:



第一个 root 表示的是所有者。


第二个 root 表示群组


​ 语法:chown [选项] [所有者][:[组]] 文件


​ 说明:chown 将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户 ID。组可以是组名或组 ID。文件是以空格分开的要改变权限的文件列表,支持通配符。


​ 参数:


  • R 递归式地改变指定目录及其下的所有子目录和文件的拥有者。

  • v 显示 chown 命令所做的工作。

1.3.2 修改文件所有者示例


\

1.3.3 修改文件的用户组示例

1.3.4 同时修改文件的所有者与用户组


注意:如果将文件拷贝到其他目录,那么该文件的所有者和用户组会根据所在目录的所有者和用户组发生改变。将文件移动到其他目录,那么该文件的所有者和用户组不会发生改变,原来是什么移动之后还是什么。

1.4 groups 命令查看当前组内成员和所在组

groups :命令查看当前登录的用户组。


groups abc :查看用户 abc 所在的组和组内的成员。


示例:


1.5 用户组配置文件

/etc/group 文件存放了用户组的配置文件。


/etc/group 文件包含了组名、组密码、组 ID、已经改组包含的用户等。


每条内容分为四个字段:


第一个字段:组名


第二个字段:组密码


第三个字段:组 ID


第四个字段:组成员列表,每个成员之间可以使用 , 号隔开。 本字段可以为空,如果为空就表示组成员为用户组名。



图 1-5-1

发布于: 刚刚阅读数: 3
用户头像

DS小龙哥

关注

之所以觉得累,是因为说的比做的多。 2022.01.06 加入

熟悉C/C++、51单片机、STM32、Linux应用开发、Linux驱动开发、音视频开发、QT开发. 目前已经完成的项目涉及音视频、物联网、智能家居、工业控制领域

评论

发布
暂无评论
Linux下文件目录权限操作_10月月更_DS小龙哥_InfoQ写作社区