Linux:文件和目录权限初学者指南(umask, chmod, read, write, execute)

举报
Tiamo_T 发表于 2022/02/06 16:11:29 2022/02/06
【摘要】 Unix文件和目录权限是3×3结构的形式。即三种权限(读取、写入和执行)可用于三种类型的用户(所有者、组和其他)。 在 ls -l 命令的输出中,第 2 到第 10 个位置的 9 个字符代表 3 类用户的权限。

Unix文件和目录权限是3×3结构的形式。即三种权限(读取、写入和执行)可用于三种类型的用户(所有者、组和其他)。

在 ls -l 命令的输出中,第 2 到第 10 个位置的 9 个字符代表 3 类用户的权限。

-rw-r--r-- 1 sathiya sathiya 272 Mar 17 08:22 test.txt

在上面的例子中:

  • 用户 (sathiya) 具有读写权限
  • 组具有读取权限
  • 其他人有阅读权限

三文件权限:

  • read:允许读取文件的内容。
  • write:允许写入文件。
  • 执行:允许将文件作为程序/脚本执行。

三个目录权限:

  • read:允许读取目录的内容(查看该目录中的文件和子目录)。
  • write:允许写入目录。(在该目录中创建文件和子目录)
  • 执行:允许进入该目录。

读取、写入和执行权限的数值:

  • 阅读 4
  • 写 2
  • 执行 1

要获得权限组合,请添加所需的数字。例如,对于读写权限,它是 4+2 = 6。

使用 Chmod 命令更改文件和目录权限

您可以使用八进制表示或符号表示来更改文件或目录的权限。


八进制表示的权限:

  • 第一个数字是给用户的
  • 第二个数字是组
  • 第三个数字是给别人的

例如,给用户读、写 (4+2 = 6),给组和其他人读 (4)。

$ chmod 644 filename

例如,将 read、execute (4 + 1 = 5) 分配给用户,将 read (4) 分配给 group,而将 nothing (0) 分配给其他人。

$ chmod 540 filename

例如,将读取、写入 (4 + 2 = 6) 授予用户,将任何内容 (0) 授予分组,并将读取 (4) 授予其他人。

$ chmod 604 filename

umask 022 负责一个文件的默认权限

默认的 umask 值为 0022,它决定了新文件或目录的默认权限。目录的默认权限为0777,文件的权限为0666,减去默认的umask值0022得到新创建的文件或目录权限。

文件的最终默认权限计算如下:

  • 默认文件权限:666
  • 默认umask:022
  • 最终默认文件权限:644

目录的最终默认权限计算如下:

  • 默认目录权限:777
  • 默认umask:022
  • 最终默认目录权限:755

您可以根据上述计算将 umask 值更改为您需要的适当值。例如,如果您不希望用户(所有者)以外的任何人对文件或目录执行任何操作,那么您可以将 umask 设为 0077。

$ umask 0077

在此之后,如果您创建文件或目录,它将只对用户具有权限,如下所示:

$ > testfile
$ ls -l testfile
-rw------- 1 sathiya sathiya 0 Mar 17 08:23 testfile
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。