Linux 文件权限

2023-11-03

简介

Linux 的学习过程中,文件权限是一个很重要的概念,毕竟 Linux 中的各种操作都离不开权限的支持。

这篇博客算是对 Linux 文件权限学习的一个简单总结。

 

用户与用户组

Linux 的文件权限是和 用户与用户组 密切相关的一个概念,对于一个文件来说,用户可以分为三类:

  • 文件的 拥有者 - user
  • 文件的拥有者所在 用户组 的其他成员 - group
  • 拥有者用户组 成员以外的其他用户 - others

文件权限是相对于这三类用户而言的,不同身份的用户可以具有不同的权限。

 

文件属性

使用命令 ls -l 可以得到文件的详细信息,比如:

drwxr-xr-x 5 root root 4096 Sep  7 19:52 dotemacs
drwxr-xr-x 6 root root 4096 Sep  3 22:34 dotfiles
drwxr-xr-x 9 root root 4096 Sep 11 10:19 emacs-kit
复制代码

我们可以把每一条信息分为 8 个部分,比如上面第一条信息可以分为:

文件类型 权限信息 连结数 拥有者 用户组 文件容量 修改日期 文件名
d rwxr-xr-x 5 root root 4096 Sep 7 19:52 dotemacs

这里主要了解 文件类型权限信息, 对其他部分有兴趣的可以自行 Google.

 

文件类型

Linux 中文件可以分为 5 个类型, ls -l 输出的每条信息中的 第一个字符 就用于表示文件类型。

各个文件类型及其字符表示为:

表示字符 文件类型
d 目录
- 文件
l 符号链接等
b 可供储存的接口设备
c 串行端口设备,如键盘、鼠标等

 

权限信息

通过 用户与用户组 概念可以了解到权限是相对于三类用户而言的,因此 ls -l 显示的权限信息也分为三组。

每个文件的 权限信息9 个字符组成,分为三组,分别对应 拥有者, 用户组, 其他人 拥有的权限。

对于权限信息 rwxr-xr-x 来说, 拥有者 的权限为 rwx, 用户组其他人 的权限为 r-x.

每组权限分为: 读权限, 写权限执行权限, 分别由字符 r, w, x 表示。如果不具有相应的权限,就使用字符 - 表示。

因此,权限信息 rwxr-xr-x 可以理解为: 拥有者 具有 , 执行 权限,而 用户组其他人 就只有 执行 的权限。

 

修改文件拥有者和所属用户组

命令 chownchgrp 可以用于修改文件拥有者和所属用户组,使用方式也很简单:

# 修改文件拥有者
$ chown [-R] 账号名称 文件或目录
$ chown [-R] 账号名称:组名 文件或目录

# 修改文件所属用户组
$ chgrp [-R] 用户组名称 文件或目录
复制代码

参数 -R 进行递归的持续变更,即连同次目录下的所有文件都变更。

 

修改文件权限

命令 chmod 用于修改文件的权限,并提供了两种修改文件权限的方式。

 

数字类型改变文件权限

我们可以用数字来代表各个权限,各个权限对应的数字为:

r:4
w:2
x:1
复制代码

每种身份各自的三个权限分数是需要累加的,例如当权限为 rwxrwx--- 时,对应的分数为:

user   = rwx = 4+2+1 = 7
group  = rwx = 4+2+1 = 7
others = --- = 0+0+0 = 0
复制代码

得到的文件权限数字也就为 770, 修改权限时就可以使用这个数字完成:

$ chmod [-R] 770 文件或目录
复制代码

很明显,这样修改文件权限是很麻烦的,因此 chmod 提供了另一种更好用的方式来修改文件权限。

 

符号类型改变文件权限

符号类型改变文件权限需要遵循一定的语法规则,分别需要了解的有 身份表示符, 操作表示符权限表示符.

身份表示符:

表示符 代表的身份
u 文件的拥有者
g 文件的拥有者所在用户组
o 其他人
a 所有用户

操作表示符:

表示符 代表的操作
+ 添加权限
- 去除权限
= 设定权限

权限表示符 就是 r, wx.

从表示符的组成大概也可以猜到怎样修改文件权限了,比如说下面的这条指令让拥有者具有所有权限,而为用户组和其他人添加执行权限:

chmod u=rwx,go+x .vimrc
复制代码

需要注意的是: u=rwx,go+x 之间没有空格。

 

权限的作用

同一个权限对于 文件目录 来说,含义是不一样的,这里来了解一下。

权限 文件 目录
r 可以读取文件内容 可以读取目录结构列表
w 可以编辑修改文件内容 可以改动目录结构列表
x 可以被系统执行 用户可以进入目录 (cd)

这里需要注意的一个权限是: 可以改动目录结构列表, 这意味着可以:

  • 建立新的文件与目录
  • 删除已经存在的文件与目录
  • 将已存在的文件或目录进行更名
  • 搬移该目录内的文件、目录位置

所以 w 这个权限还是慎重使用好了。


作者:花生炒花生
链接:https://juejin.cn/post/6844903866014629901
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 文件权限 的相关文章

  • 手把手教你搭建国产嵌入式模拟器SkyEye开发环境

    SkyEye介绍 SkyEye是一个开源软件 OpenSource Software 项目 中文名字是 天目 SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境 模拟常见的嵌入式计算机系统 这里假定 仿真
  • Rclone笔记

    关于 rclone 在windows Linux上面得一些基本用法之前几篇文章介绍过 见 HomePage 官方文档 https rclone org commands 目录 一些简单命令 挂载 rclone命令 用自己的 api 进行 g
  • PPTP 相关命令

    1 ifconfig grep ppp 查看连接的用户网络情况 2 last grep still grep ppp 查看连接的用户名 3 UnixBench跑分测试 wget https byte unixbench googlecode
  • Linux修改密码

    Linux修改密码用 passwd 命令 用root用户运行passwd passwd user name可以设置或修改任何用户的密码 普通用户运行passwd只能修改它自己的密码 root localhost passwd 修改root用
  • 这些 Shell 分析服务器日志命令集锦,收藏好

    自己的小网站跑在阿里云的ECS上面 偶尔也去分析分析自己网站服务器日志 看看网站的访问量 看看有没有黑阔搞破坏 于是收集 整理一些服务器日志分析命令 大家可以试试 1 查看有多少个IP访问 awk print 1 log file sort
  • linux 安装mysql8.0.x

    MySQL MySQL简介 MySQL原本是一个开放源代码的关系数据库管理系统 原开发者为瑞典的MySQL AB公司 该公司于2008年被昇阳微系统 Sun Microsystems 收购 2009年 甲骨文公司 Oracle 收购昇阳微系
  • 怎样查看Linux服务器配置

    1 前言 本文主要讲解如何查看Linux服务器配置 主要是查看服务器硬件配置 怎样查看Linux服务器配置 2 查看CPU信息 2 1 使用 lscpu 命令查看服务器CPU信息 lscpu 如下图 使用lscpu命令查看服务器CPU信息
  • Linux 网卡重新获取IP

    1 所有网卡驱动重新加载 service network restart 2 对单一网卡进行操作 ifconfig a 获取所有网卡信息 可以看到所有网卡的名字 ifconfig 网卡名称 down ifconfig 网卡名称 up 3 D
  • Linux Tensorflow2.0安装

    安装Tensorflow2 0 conda update conda pip install tf nightly gpu 2 0 preview conda install https mirrors tuna tsinghua edu
  • Linux 文件权限

    简介 在 Linux 的学习过程中 文件权限是一个很重要的概念 毕竟 Linux 中的各种操作都离不开权限的支持 这篇博客算是对 Linux 文件权限学习的一个简单总结 用户与用户组 Linux 的文件权限是和 用户与用户组 密切相关的一个
  • linux搭建ftp

    ftp一些概念了解 Linux安装vsftpd及配置详解 1 安装 yum y install vsftpd 2 FTP主动模式与FTP被动模式 3 防火墙开启21端口 文中是使用iptables开启的 现在centos7 2版本默认是防火
  • Let's Encrypt 泛域名证书申请

    github https github com Neilpang acme sh 通过acme申请Let s Encrypt证书支持的域名DNS服务商有以下这些 国内用户较多的 cloudxns dnspod aliyun 阿里云 clou
  • systemctl 命令详解及使用教程

    在本教程中 我们将向您介绍在运行systemd的linux系统上如何使用systemctl命令工具有效的控制系统和服务 Systemctl 介绍 Systemctl是一个systemd工具 主要负责控制systemd系统和服务管理器 Sys
  • ImportError: libopenblas.so.0: cannot open shared object file: No such file or directory

    安装OpenBLAS的步骤 1 下载最新的openblas git clone https github com xianyi OpenBLAS git 没有安装git 先安装git CentOS安装git yum install git
  • 多个项目引用,如何打包项目成为war,jar包

    原文链接 多个项目引用 如何打包项目成为war jar包 推荐导入项目 IDEA如何导入多个maven项目在pox引入自建包 那么我们导入了多个项目的依赖关系后 随之而来产生多个项目 那我们打包的时候 应该如何将其建在一个war或war包
  • 在Ubuntu 16.04 LTS服务器上安装FreeRADIUS和Daloradius的方法

    FreeRADIUS 为AAA Radius Linux下开源解决方案 DaloRadius为图形化web管理工具 freeradius一般用来进行账户认证管理 记账管理 常见的电信运营商的宽带账户 上网账户管理 记账 都是使用的radiu
  • 如何重装Linux系统

    大家都知道我们平常所用的windows系统 可以很方便的重装系统 有U盘安装 还有光盘安装 那么我们在Linux下如何重装系统呢 其实和Windows下方法大同小异 如果你手上正好有个U盘的话 那就可以试试做一个USB Linux启动盘 它
  • Linux Top 命令指南

    top 命令允许用户监视 Linux 上的进程和系统资源使用情况 它是系统管理员工具箱中最有用的工具之一 并且在每个发行版中都预装了它 与 ps 等其他命令不同 它是交互式的 我们可以浏览进程列表 终止进程 等等 本文中 我们将了解如何使用
  • 手把手教你安装MINIGUI编程环境 (MINIGUI版本3.2.0)

    0 MINIGUI MiniGUI 是一款面向嵌入式系统的高级窗口系统 Windowing System 和图形用户界面 Graphical User Interface GUI 支持系统 由魏永明先生于 1998 年底开始开发 2002
  • Linux 基础知识

    一 从认识操作系统开始 1 1 操作系统简介 我通过以下四点介绍什么操作系统 操作系统 Operation System 简称OS 是管理计算机硬件与软件资源的程序 是计算机系统的内核与基石 操作系统本质上是运行在计算机上的软件程序 为用户

随机推荐

  • ASP.NET Web Pages基础知识---从文本文件中读取并显示数据

    在您的网站上 如果没有 App Data 文件夹 请创建一个 在 App Data 文件夹中 创建一个名为 Persons txt 的文件 添加以下内容到文件中 Persons txt George Lucas Steven Spielbe
  • BIN文件和HEX文件区别

    BIN文件和HEX文件区别 参考 https blog csdn net spdian article details 52963467 https zhidao baidu com question 180988134632085124
  • JavaScript强化教程——canvas

    本文为 H5EDU 机构官方 HTML5培训 教程 主要介绍 JavaScript强化教程 canvas 使用 strokeText 使用 Arial 字体在画布上绘制一个高 30px 的文字 空心 JavaScript var c doc
  • 【Clion+CubeMX开发STM32】(一)安装配置Clion

    目录 前期准备 安装配置环境 安装汉化Clion 安装MinGW 验证MinGW 安装arm none eabi gcc 验证arm none eabi gcc 安装openOCD CubeMX 前期准备 下载安装以下软件 Clion ST
  • OSS上传文件后下载报错 NoSuchKey: The specified key does not exist.

    成功上传excel到阿里云oss后 再拿返回的完整url http 桶名称 地域节点 订单 2022 09 03 智慧云店 订单管理 导入订单 1662193298950382 xlsx 下载文件 出现如下报错信息
  • 时间序列预测和无监督学习附Matlab代码实例

    时间序列预测和无监督学习附Matlab代码实例 时间序列是指按时间顺序排列的数据集合 例如气象数据 股票数据等 在实际应用中 我们需要对这些数据进行预测和分析 以便做出正确的决策 而无监督学习则是一种机器学习技术 无需人工标注数据即可自动学
  • 基于SSM的化妆品配方及工艺管理系统设计与实现

    末尾获取源码 开发语言 Java Java开发工具 JDK1 8 后端框架 SSM 前端 采用JSP技术开发 数据库 MySQL5 7和Navicat管理工具结合 服务器 Tomcat8 5 开发软件 IDEA Eclipse 是否Mave
  • Android Studio Sqlite的增删改查

    MySQLiteOpenHelper java import android content Context import android database sqlite SQLiteDatabase import android data
  • 基于Vue的前端权限管理

    前端权限控制的思路主要分为以下几个方向 1 菜单的控制 导航侧边栏 登录请求中得到后端返回的权限数据 前端根据权限数据动态展示对应菜单 点击菜单才能查看对应界面 store js import Vue from vue import Vue
  • C++异常介绍与自定义异常

    C 异常处理提供了一种在程序运行期间处理运行时错误的方法 通过使用异常处理 您可以更清晰地分隔正常代码和处理错误的代码 C 异常处理涉及到三个关键词 try catch 和 throw throw 当问题出现时 程序会 抛出 一个异常 这是
  • Nacos生产者与消费者的简单案例

    启动Nacos 下载nacos server zip 解压后找到bin目录下的startup cmd双击运行 下载地址 访问 http localhost 8848 nacos 用户名密码 nacos nacos 生产者注册到Nacos 创
  • 深度学习:垃圾自动分类

    导 言 垃圾分类 指按一定规定或标准将垃圾分类储存 分类投放和分类搬运 从而转变成公共资源的一系列活动的总称 这不仅是出于生态环境角度考虑 没有垃圾 只有放错位置的资源 分类收集后 不少垃圾都可以被重新再利用 随着我国城市化水平的提高 越来
  • 一、Kubernetes详解-k8s概念和名词解释理解。包括组件、架构、资源管理、kubectl命令

    Kubernetes详解 对k8s里面概念和名词的解释理解 一 k8s简介 1 k8s是什么 2 k8s主要功能 3 k8s组件 1 master 集群的控制平面 负责集群的决策 管理 2 node 集群的数据平面 负责为容器提供运行环境
  • Transformer 在计算机视觉领域疯狂“内卷”

    继 Transformer 杀疯了 图像去雨 人脸幻构 风格迁移 语义分割等通通上分 之后 Transformer 在计算机视觉领域继续疯狂 内卷 01 CAT Cross Attention in Vision Transformer 来
  • 编写Controller的帮助类

    package com yc education controller import com yc education model Messages import com yc education model Proportion impo
  • ![] == ![],![] == [],结果是什么?为什么?

    根据优先级 的优先级是大于 的 所以会先执行 可将变量装换成boolean类型 null undefined NaN以及空字符串 取反都为true 其余都为false 根据上面提到的规则 如果有一个操作数是布尔值 则在比较相等性之前先将其装
  • idea 断点调试 以及 tomcat 无法访问

    idea 断点调试 以及 tomcat 无法访问 工作中使用到ide工具的时候 因为不想去记调试断点的快捷键 所以喜欢使用下方ide自带的按键 事实是百度了好久 在 才找到 原因好像是ide中断点没有关闭 还在运行中 所以导致下一次断点跳入
  • vue基础知识十:Vue中组件和插件有什么区别?

    一 组件是什么 回顾以前对组件的定义 组件就是把图形 非图形的各种逻辑均抽象为一个统一的概念 组件 来实现开发的模式 在Vue中每一个 vue文件都可以视为一个组件 组件的优势 降低整个系统的耦合度 在保持接口不变的情况下 我们可以替换不同
  • 个人js学习实例-求数组的平均值

  • Linux 文件权限

    简介 在 Linux 的学习过程中 文件权限是一个很重要的概念 毕竟 Linux 中的各种操作都离不开权限的支持 这篇博客算是对 Linux 文件权限学习的一个简单总结 用户与用户组 Linux 的文件权限是和 用户与用户组 密切相关的一个