一、权限介绍

使用ls命令查看时,发现长格式显示的第一列就是文件的权限

权限位一共有 10 位,这 10 位权限位的含义如下图所示。

  • 第 1 位代表文件类型。Linux 不像 Windows 使用扩展名表示文件类型,而是使用权限位的第 1 位表示文件类型。虽然 Linux 文件的种类不像 Windows 中那么多,但是分类也不少,详细情况 可以使用“info ls”命令查看。

    “-”:普通文件。

    “b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1 就是这种文件。

    “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘 等。

    “d”:目录文件。Linux 中一切皆文件,所以目录也是文件的一种。

    “l”:软链接文件。

    “p”:管道符文件。这是一种非常少见的特殊设备文件。

    “s”:套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样的文件。
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限。
  • 第 2~4 位代表文件所有者的权限

    r:代表 read,是读取权限。

    w:代表 write,是写权限。

    x:代表 execute,是执行权限
  • 第 5~7 位代表文件所属组的权限,同样拥有“rx”权限。
  • 第 8~10 位代表其他人的权限,同样拥有“rx”权限

二、基本权限命令。

1、chmod,修改权限的命令 。

命令名称:chmod。

英文原意:change file mode bits。

所在路径:/bin/chmod。

执行权限:所有用户。

功能描述:修改文件的权限模式

1.1、命令格式
chmod 选项 命令模式 文件...
-R: 递归设置权限,也就是给子目录中的所有文件设定权限
1.2、权限模式

chmod 命令的权限模式的格式是“[ugoa][[+-=][perms]]”,也就是“[用户身份][[赋予方式][权限]]” 的格式。

用户身份。
  • u:代表所有者(user)。
  • g:代表所属组(group)。
  • o:代表其他人(other)。
  • a:代表全部身份(all)。
赋予方式。
  • +:加入权限。
  • -:减去权限。
  • =:设置权限。
权限。
  • r:读取权限(read)。
  • w:写权限(write)。
  • x:执行权限(execute)。

    例如
chmod  o-w a.txt
#把a.txt针对其他人写权限移除。
1.3、数字权限

数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。

4:代表“r”权限。

2:代表“w”权限。

1:代表“x”权限。

例如

chmod 644 a.txt
# 为a.txt 设置 rw-r--r-- 权限
1.4.常用权限

数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,只有如下几个。

  • 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
  • 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组和其他人拥有读和执行权限。
  • 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这会造成一定的安全隐患。

三、基本权限的作用

3.1、权限含义的解释 首先,读、写、执行权限对文件和目录的作用是不同的
权限对文件的作用。
  • 读(r):对文件有读(r)权限,代表可以读取文件中的数据。如果把权限对应到命令上,那么一旦对文件有读(r)权限,就可以对文件执行 cat、more、less、head、tail 等文件查看命令。
  • 写(w):对文件有写(w)权限,代表可以修改文件中的数据。如果把权限对应到命令上,那么一旦对文件有写(w)权限,就可以对文件执行 vim、echo 等修改文件数据的命令。注 意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件, 则需要对文件的上级目录拥有写权限。
  • 执行(x):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在 Linux 中,只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行, 不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行(x)权限是最高权限。
权限对目录的作用。
  • 读(r):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可 以在目录下执行 ls 命令,查看目录下的内容了。
  • 写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、 删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w) 权限,就可以在目录下执行 touch、rm、cp、mv 命令。对目录来说,写(w)权限是最高权限。
  • 执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果 把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行 cd 命令,进入目录。
3.2、目录的可用权限 目录的可用权限其实只有以下几个。
  • 0:任何权限都不赋予。
  • 5:基本的目录浏览和进入权限。
  • 7:完全权限。

四、所有者和所属组命令

4.1、chown 命令

chown 是修改文件和目录的所有者和所属组的命令,

命令名称:chown。

英文原意:change file owner and group。

所在路径:/bin/chown。

执行权限:所有用户。

功能描述:修改文件和目录的所有者和所属组。

命令格式
[root@love2 ~]# chown [选项] 所有者:所属组 文件或目录
-R: 递归设置权限,也就是给子目录中的所有文件设置权限
4.2.chgrp 命令 chgrp 是修改文件和目录的所属组的命令

命令名称:chgrp。

英文原意:change group ownership。

所在路径:/bin/chgrp。

执行权限:所有用户。

功能描述:修改文件和目录的所属组

命令格式
[root@love2 ~]# chgrp [选项] 组名 文件或目录
-R: 递归设置权限,也就是给子目录中的所有文件设置权限

五、umask 默认权限

当我们登录系统之后创建一个文件或者目录总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反 。

5.1查看umask权限。
# 用八进制数值显示 umask权限
[root@love2 ~]# umask
0022 # 用字母表示文件和目录的初始权限
[root@love2 ~]# umask -S
u=rwx,g=rx,o=rx #设置umask值
umask 033
5.2 umask 权限的计算方法 我们需要先了解一下新建文件和目录的默认最大权限。
  • 对文件来讲,新建文件的默认最大权限是 666,没有执行(x)权限。这是因为执行权限对文件 来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予

  • 对目录来讲,新建目录的默认最大权限是 777。这是因为对目录而言,执行(x)权限仅仅代表 进入目录,所以即使建立新文件时直接默认赋予,也没有什么危险。

    按照官方的标准算法,umask 默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以得到正确的新建文件和目录的默认权限。这种方法既不好计算,也不好理解,

    所以这里还是按照权限字母来讲解 umask 权限的计算方法。我们就按照默认的 umask 值是 022 来分别计算一下新建文件和目录的默认权限吧。

  • 文件的默认权限最大只能是 666,而 umask 的值是 022

    “-rw-rw-rw-”减去 “-----w--w-”等于“-rw-r--r—”

  • 目录的默认权限最大可以是 777,而 umask 的值是 022

    “drwxrwxrwx”减去“d----w--w-”等于“drwx-r-xr-x”

注意:umask 默认权限的计算绝不是数字直接相减。

例如 umask 是 033

  • 文件的默认权限最大只能是 666,而 umask 的值是 033

    “-rw-rw-rw-”减去“-----wx-wx”等于“-rw-r--r—”
  • 目录的默认权限最大可以是 777,而 umask 的值是 033

    “drwxrwxrwx”减去“d----wx-wx”等于“drwx-r--r--”

linux命令--基本权限命令的更多相关文章

  1. linux修改文件权限命令

    先看个实例: [root@local opt]#ls -al ls -al 命令是列出目录的所有文件,包括隐藏文件.隐藏文件的文件名第一个字符为'.' -rw-r--r--  1 root root  ...

  2. 05004_Linux的其他命令和权限命令

    1.其他命令 (1)显示当前所在位置 命令:pwd (2)搜索命令 a.命令:grep 要搜索的字符串 要搜索的文件 示例:搜索/etc/sudu.conf文件中包含字符串to的行 b.搜索/etc/ ...

  3. linux 中更改权限命令chown,chmod,chgrp

    写在前面,关于chown,chmod的区别 chown用法 用来更改某个目录或文件的用户名和用户组的 chown 用户名:组名 文件路径(可以是就对路径也可以是相对路径) 例1:chown root: ...

  4. Linux常用文件权限命令详解

    pwd pwd命令用于获取当前工作目录的绝对路径. 使用示例: pwd 效果如下图: cd cd命令用于切换工作目录. 使用示例: cd 万猫学社/ 效果如下图: 其中在路径表示时, 一个半角句号(. ...

  5. Linux更改文件权限命令

    chmod命令 1.格式:chmod [-cfvR][--help][--version]mode file 2.参数 1)必要参数 -c 当发送改变时,报告处理信息 -f 错误信息不输出 -R 处理 ...

  6. linux修改文件权限命令(chmod)

    chmod命令是用于改变文件或目录的访问权限.用户用它控制文件或目录的访问权限. 该命令有两种用法.一种是包含字母和操作符表达式的文字设定法:另一种是包含数字的数字设定法. 1.文字设定法 chmod ...

  7. linux 更改文件权限命令 chmod

    chmod -change file mode bits :更改文件权限 chmod是用来改变文件或者目录权限的命令,但只有文件的属主和超级用户(root)才有这种权限. 更改文件权限的2种方式: 一 ...

  8. Linux 查看文件权限命令ls -l 输出信息每列所代表的含义

  9. 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令

    Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...

随机推荐

  1. df,dh 命令

    原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/df2f05c4-b ...

  2. Microsemi Libero使用技巧——使用FlashPro单独下载程序

    前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...

  3. 利用zabbix监控RocketMQ

    根据需求,监控三个指标:MQ进程.自定义监控项订阅组的未消费值Diff Total和TPS. 创建MQ 状态的监控模板,进程监控利用zabbix自带的模板: 监控订阅组的Diff Total和TPS ...

  4. 二维码生成插件qrious

    1.qrious是基于canvas的纯JS二维码生成插件 1.1什么是二维码 二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的B ...

  5. 黑苹果 macOS 10.13.6 17G66 安装 nVidia WebDriver

    目前很多N卡的WebDriver已经不支持macOS 10.14了,只能停留在10.13.6,苹果AppStore下载的 macOS High Sierra 10.13.6 版本号是17G66,遗憾的 ...

  6. React路由基本的使用(一)

    路由的基本使用 下载 npm i -D react-router react-router-dom APP.js ps==>NavLink 选中的时候 可以高亮 demo 是你自己添加的一个类哈 ...

  7. OWASP ModSecurity Core Rule Set (CRS)的基本使用

    Preface 前述文章开源WAF工具ModSecurity,介绍了ModSecurity作为Nginx的动态加载模块的基本安装和使用. 本篇简单介绍ModSecurity CRS规则集的使用. # ...

  8. 高阶函数 - Higher Order Function

    一个函数如果有 参数是函数 或 返回值是函数,就称为高阶函数. 这篇文章介绍高阶函数的一个子集:输入 fn,输出 fn'. 按 fn 与 fn' 功能是否一致,即相同输入是否始终对应相同输出,把这类高 ...

  9. IPFS学习-分布式哈希表DHT

    Distributed Hash Tables(DHT) 分布式哈希表是一个分布式的键值对存储结构.在IPFS网络中,每一个节点都维护一个DHT的子集.当节点接受到一个请求.该节点要么直接回复,要么通 ...

  10. Ajax之处理不同格式的JSON数据

    JSON是一种网络中的数据格式,主要用于网络间的数据传输,它比XML格式的数据传输速度快,使用更广. 1.Ajax处理对象格式的JSON数据: <script src="../JS/j ...