Linux 命令之 chmod:修改权限

Linux 命令之 chmod:修改权限温馨提示:本教程的GitHub地址为「linux-tutorial」,欢迎感兴趣的童鞋Star、Fork,纠错。在Linux命令中,chmod用于修改文件或者目录的权限。对于文件或者目录的普通权限,共有3种,分别为:r:读取;w:写入;x:执行。此外,还有3种特殊权限,分别为:suid:SetUserID;sgid:SetGroupID;st

大家好,欢迎来到IT知识分享网。

温馨提示:本教程的 GitHub 地址为「linux-tutorial」,欢迎感兴趣的童鞋StarFork,纠错。

在 Linux 命令中,chmod用于修改文件或者目录的权限。对于文件或者目录的普通权限,共有 3 种,分别为:

  • r:读取;
  • w:写入;
  • x:执行。

此外,还有 3 种特殊权限,分别为:

  • suid:Set User ID;
  • sgid:Set Group ID;
  • sticky:粘滞位。

在此,我们仅介绍如何利用chmod修改文件及目录的普通权限。

权限范围及代号

文件及目录的权限范围,包括:

  • u:User,即文件或目录的拥有者;
  • g:Group,即文件或目录的所属群组;
  • o:Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
  • a:All,即全部的用户,包含拥有者、所属群组以及其他用户。

权限的代号包括:

  • r:读取权限,数字代号为4
  • w:写入权限,数字代号为2
  • x:执行或切换权限,数字代号为1
  • -:不具任何权限,数字代号为0
  • s:当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限。

语法及选项说明

  • chmod语法:

  • chmod [-cfRv][--help][--version][<权限范围>+/-/=<权限设置...>][文件或目录...]

  • chmod [-cfRv][--help][--version][数字代号][文件或目录...]

  • chmod [-cfRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]

  • 选项说明:

  • -c--changes:效果类似-v参数,但仅返回更改的部分;

  • -f--quiet--silent:不显示错误信息;

  • -R--recursive:递归处理,将指定目录下的所有文件及子目录一并处理;

  • -v--verbose:显示指令执行过程;

  • --help:显示在线帮助信息;

  • --reference=<参考文件或目录>:把指定文件或目录的权限全部设成和参考文件或目录的权限相同;

  • --version:显示版本信息;

  • <权限范围>+<权限设置>:开启权限范围的文件或目录的该项权限设置;

  • <权限范围>-<权限设置>:关闭权限范围的文件或目录的该项权限设置;

  • <权限范围>=<权限设置>:指定权限范围的文件或目录的该项权限设置。

示例

首先,我们通过ls -l命令来看看文件及目录的相关信息:

lsl

如上图所示,以其为例,我们依次来分析各内容代表的含义,

  • 第 1 行:total 16,表示所列出内容的磁盘占用空间总和值,单位为KB
  • 第 1 列:dr-xr-xr-x,表示文件或目录的类型及权限;
  • 第 2 列: 4,表示文件或目录的链接个数;
  • 第 3 列:bin.guo,表示文件或目录的所有者;
  • 第 4 列:staff,表示文件或目录的所在群组;
  • 第 5 列:136,表示文件或目录本身的大小;
  • 第 6 列:Nov 24 11:26,表示文件或目录的最后更新时间;
  • 第 7 列:a,表示文件或目录的名称。

其中 第 1 列 的内容(除total外)特别丰富,以dr-xr-x-r-x为例(共 10 个字符),我们对其进一步分析:

  • 第 1 个字符d,表示文件或目录的类型,其类型包括
  • p,表示命名管道文件;
  • d,表示目录文件;
  • l,表示符号连接文件;
  • -,表示普通文件;
  • s,表示 Socket 文件;
  • c,表示字符设备文件;
  • b,表示块设备文件。
  • 第 2 ~ 4 个字符r-x,表示文件或目录的所有者权限;
  • 第 5 ~ 7 个字符r-x,表示文件或目录的所有者同组用户权限;
  • 第 8 ~ 10 个字符r-x,表示文件或目录的其他用户权限。

此外,大家可能还注意到有些文件或目录在其显示的权限后面还跟着一个字符,或者为.或者为@,具体:

  • 在 Mac 终端中显示为@
  • 在 Linux 系统中显示为.

这表示其所属的文件或目录开启了SELinux安全上下文标签,如果没有,则表示未开启。

接下来,演示一些具体的操作示例:

  • 示例 1:添加所有用户对test-one的执行权限

xxxx

  • 示例 2:取消test-one所有者群组用户的执行权限及其他用户的写入权限

gxow

  • 示例 3:递归取消文件夹a的所有用户的执行权限

ccccc

  • 示例 4:添加所有用户对test-one的所有权限

777

  • 示例 5:取消test-one所有者的执行权限及其他用户的所有权限

670

在 Linux 的众多命令中,chmod命令算是比较简单的一个了。以此为始,让我们一起感受 Linux 的魅力吧!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14880.html

(0)
上一篇 2024-02-23 11:45
下一篇 2024-02-23 15:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信