你一定要了解的linux权限(总结分享)

本篇文章给大家带来了linux权限的相关知识,其中包括了怎样改变权限的属性,希望对大家有帮助。

你一定要了解的linux权限(总结分享)

我们在使用 Linux 的过程中,或多或少都会遇到一些关于使用者和群组的问题,比如最常见的你想要在某个路径下执行某个指令,会经常出现这个错误提示 。

permission denied

反正我大概率见到这个错误都是在使用 FTP 传输文件的时候,等了半天传输百分比还是零,我说网络这么慢么?怎么都不传输呢?其实我不知道,这是由于权限问题所致。

我一般的修复方式是直接赋予 777 权限,或者直接使用 su 管理员登录。。。。。。

大家可能不太知道我说的是什么,也有一些大佬可能觉得我这种方式太 low 了,不管怎样,遇到这种问题就是说你得权限不够,为什么呢?下面我们就需要来认识一下 Linux 中的使用者和群组了。

使用者和群组

在 Linux 中,关于文件所有者分为三类,即文件所有者、群组和其他人所属,这里分别解释以下这三个概念

文件所有者

Linux 是一个多用户多任务系统,多用户就意味着有些用户创建的文件是否对其他用户可见,这是一种可见性问题,同时也是一种隐私性问题,为了考虑到每个人的隐私权,Linux 设计了文件所有者的角色。如果你有一些资料和文件的隐私性比较高,你就可以把文件设置成 “只有我自己可见” ,这就是文件所有者的作用。

群组

群组的这个概念用在团队开发中,用处比较多的就是为项目设置权限,比如你就职于一个银行的外包部门,你和其他外包部门共同为某个银行服务,所有的外包团体都使用一台服务器,这就会涉及到群组权限的问题,你们外包部门开发的项目不想让其他外包部门所看到,就会把该项目设置成群组可见。但是银行是总负责人,所有银行具有查看你们所有外包部门项目的权限,因此,你还需要设置银行的权限。

其他人所属

其他人和群组是相对的,其他人在群组之外,没有权限查看群组内文件的一种权限关系。

除了上面三个概念之外,还有一个权限级别最高的大佬,它就是 root,这个 root 权限是最高的。

Linux 文件权限

在聊完上面使用者和群组的概念之后,接下来我们就来谈一下文件权限要如何设置的问题,这块内容是很重要的,因为这部分内容是很好解决 permission denied 问题的关键。

权限属性

首先登录 Linux 系统,使用 su – 可以切换成为 root 身份,然后执行 ls -al 会看到下面这些

34.png

一共有七列内容,这七列内容如下图所示。

35.png

学习的时候可以直接使用 root ,因为后续的 chgrp,chown 等指令都需要 root 来处理,但是工作中强烈建议不要使用 root 权限。

使用 exit 可以退出 root 身份。

上面这段指令中,ls 是 list 的意思,也就是列出,而选项 -al 则表示文件详细权限和属性。

权限,第一列表示的是权限,权限一共通过 10 个字符来表示,我们拿 home 权限为例,来列举各个字符表示的含义

36.png

第一个字符表示的是文件类型,文件类型有很多种,一般 [d] 表示的是目录,能用cd命令进入到这个目录中。可以看到图中几乎所有都是目录。

37.png

如果是 [-] 则表示文件,如果是 [l] 则表示链接文件,如果是 [b] 则表示设备文件中的可随机存取设备,如果是 [c] 则表示为设备文件中的一次性读取设备(键盘、鼠标)。

接下来的九个字符分为三组,三个一组,分别表示所属人、所属群组、其他所有者权限,每组内的权限都是三个 rwx 的组合,[r] 表示可读,[w]表示可写,[x] 表示可执行,这里需要注意的是,如果没有权限,就会变为 -号。

链接,这一列表示有多少文件名链接到这个节点(i-node)上,每个文件都会将它的权限和属性记录到文件系统的 i-node 上,不过,我们使用的目录树却是使用文件名来记录的,因此每个文件名都会关联到一个 i-node ,所以这个属性就是记录有多少文件链接到了同一个 i-node 上。

什么是 i-node ?

i-node 的描述方式很像是我们之前聊过的 Socket,Socket 就是一个四元组,有时会加上协议类型变为五元组,如果你不太清楚我说的是什么,可以看下我的这篇文章 原来这才是 Socket!

我们知道,磁盘的最小存储单位是扇区,操作系统在读取扇区时,不会一个扇区接着一个扇区这样读取,因为效率太低,而是以块为单位进行读取,块是由多个扇区组成的。

文件中的数据都存储在扇区中,但是我们并不知道哪一块数据是我们需要的,为了存储一些文件的元信息,比如文件的创建者,创建日期,文件的大小,开发人员提出了 i-node ,也就是索引节点。一般来说,i-node 具有如下内容

38.png

具体关于 i-node 的内容,我们后面还会再说。

然后第三列表示这个文件的所属人,由图可见,大部分文件的所属人都是 root 用户。

第四列表示这个文件的所属群组,在 Linux 系统下,你登录的账号会添加到一个或者多个所有人群组中,这一栏就表示对应的群组权限。

第五列表示文件大小,默认单位为字节(Bytes)。

第六列为创建这个文件的日期和最近修改日期,从图中可以看到,这个日期格式有可能不是我们想要的,如果要显示完整的日期格式,可以使用 ls -l –full-time,包括年、月、日、时间。

如果想要让系统默认的语系变为英文的话,那么你可以修改系统配置文件 /etc/locale.conf,首先我们可以查看一下系统都支持哪些语言。

39.png

修改默认语言,输入

vi /etc/profile

在文档的最后输入

export LANG="en_US.UTF-8"

就可以切换成为英文,如果想使用中文,可以输入

export LANG="zh_CN.GB18030"

然后使用 esc + :wq 保存,保存之后使用

source /etc/profile

即可完成设置。

第七列为文件名,有一类特殊的文件名,它表示着隐藏文件,如果文件名之前多一个 . ,那就表示隐藏文件。

权限的重要性

提供系统保护:非权限用户不能操作具有某些权限的功能和数据。

适合团队开发和数据共享:团队所有组成员和个人所属能够共享项目。

如果没有恰当的设置系统权限,可能会造成某些泄密事件或者其他不可忽视的后果,所以权限问题大家要引起重视,下面我们就来聊一聊如何设置系统权限。

改变系统权限和属性

我们现在知道文件权限对于一个系统安全的重要性了,现在就要聊一聊如何修改文件权限了。常用的修改文件权限的指令有

chgrp :改变文件所属群组

小鸽子助手 小鸽子助手

一款集成于WPS/Word的智能写作插件

小鸽子助手 55 查看详情 小鸽子助手

chown:改变文件所有者

chmod:改变文件权限

chgrp

chgrp 就是 change group 的缩写,我觉得李纳斯把缩写用到了极致,这也许是我们现在对于缩写这么流行的原因。chgrp 能够改变文件群组,不过,要改变群组的话,要被改变的群组名称要在 /etc/group 文件内存在才行,否则就会显示错误。

chown

既然 chgrp 能够改变文件群组,那么 chown 能够改变文件所有者,同样也需要注意的是,文件所有者必须是系统中存在的账号,也就是在 /etc/passwd 这个文件中有记录的使用者名称才可改变。除此之外,chown 还可以直接修改群组名称。

chmod

变更文件权限使用的是 chmod 这个指令,但是,权限的设置有两种方式,可以分别使用数字或者符号进行权限变更。

使用数字改变文件权限

Linux 文件基本权限有 9 种,分别是 owner/group/others 三种身份加自己的 read/write/execute 权限,这九个权限三个为一组,我们可以使用数字表示各个权限。

一般 r 表示 4;w 表示 2;x 表示 1,每种身份各自的权限是需要累加的,比如 rwx 就表示 4 + 2 + 1 = 7。比如我们最常见的 chmod 777 它就表示赋予所有的权限,也就是说谁都能看/写/执行,所以这种文件也存在极大的安全问题。使用数字改变文件权限是我们最常用的一种方式。

使用符号改变文件权限

九种文件权限分别对应着:(1) user (2) group (3) others,所以我们可以借由 u,g,o 来代表三种身份的权限。除此之外,a 代表 all 即全部的身份。

比如我们想要给 -rwxr-xr-x 设置权限,那么我们所使用的命令应该是

chmod u=rwx,go=rx .filename

如果我们想要给所有人增加写入权限,就可以这么操作

chmod a+w .filename

如果我们想给所有人去掉写入权限,就可以这么写入指令

chmod a-w .filename

我们上面列出了三种指令,分别是 =、+、- 号,= 号表示赋值指定权限,+ 号表示增加权限,- 号表示去掉某些权限,在 + 和 – 的状态下,只要没找到指令的项目,那么该权限不会发生变动。

Linux 目录和文件权限

我们上面聊的都是文件权限,文件是容纳数据的地方,这些文件包括一般文本文件、数据库文件、二进制文件等,权限对于文件的意义在于

r(read):可以读取文件的实际内容,比如读取文本文件的文字内容

w(write):可以新增、编辑或者修改文件中的内容(不包括删除文件)

x(execute):使文件具有被文件系统执行的权限。

Windows 下面判断文件是否能够执行的因素是看文件扩展名, 比如 .exe, .bat, .com 等等,但是在 Linux 中,判断文件是否具有可执行权限是直接判断文件有没有 x 这个权限,和文件名无关。

但是在 Linux 中,不只有文件具有权限,目录也有权限,文件是存放实际数据的地方,而目录是记录文件所在位置的清单,我们只有通过目录才能找到文件放在哪里!权限对于不同的目录,也代表着不同的概念。

r (read contents in directory):表示具有读取目录结构清单的权限,所以如果你具有读取一个目录的权限时,就代表你可以查询目录下的文件,所以你就可以使用 ls 将目录的内容显示出来。

w(modify contents of directory):写入权限表示你具有对文件目录和目录中的文件进行修改的操作,主要包括

删除已经存在的文件和目录。

创建新的文件和目录。

将已存在的文件或目录进行改名。

移动目录内文件、目录位置。

x(access directory):这执行权限有啥用?总不能目录也能够被执行把?其实并不是这样,执行权限表示着你有没有权限进入到指定目录下,也就是 cd(change directory) 。

Linux 文件种类和扩展名

想必大家都听说过这样一句话:任何设备在 Linux 下都是文件,但是文件也分为多种,除了上面介绍过的一般文件(-) 和目录文件(d) 之外,还包括下面这些文件类型

常规文件(regular file):常规文件就是我们使用 ls -al 所显示出来的属性,也就是上面我们列出的第一个字符,

40.png

文件类型又可以分为

纯文本文件(ASCII),这是 Linux 系统中最多的一种文件类型,纯文本文件是我们能够直接看到的数据,你可以使用 cat 来直接看到这部分内容。比如我们最常用的设置 Linux 静态 ip 的文件 ens33 ,就可以使用 cat 命令来输出

cat ifcfg-ens33

41.png

二进制文件,在 Linux 中,查看二进制文件可以使用 xxd 或者 od 进行格式化输出

数据格式文件,数据文件直接使用 cat 读取会显示乱码,但是它能够通过 last 指令进行输出

目录,目录没什么好说的,就是表示一个文件清单,目录的表示就是 [d],也就是 directory。

链接文件(link),链接文件就是某些程序执行时需要和这些链接文件进行链接才能执行的一种文件类型。

设备与设备文件(device),Linux 下的设备分为两种,块设备和字符设备:

块设备是一个能存储固定大小块信息的设备,它支持以固定大小的块,扇区或群集读取和(可选)写入数据。每个块都有自己的物理地址。通常块的大小在 512 – 65536 之间。所有传输的信息都会以连续的块为单位。块设备的基本特征是每个块都较为对立,能够独立的进行读写。常见的块设备有 硬盘、蓝光光盘、USB 盘。

块设备一般位于 /dev/sda 下,它的第一个属性为 [b]。

另一类 I/O 设备是字符设备。字符设备以字符为单位发送或接收一个字符流,而不考虑任何块结构。字符设备是不可寻址的,也没有任何寻道操作。常见的字符设备有 打印机、网络设备、鼠标、以及大多数与磁盘不同的设备。

字符设备最大的特点就是一次性读取,不能够截断输出,举例来说,你不可能将鼠标一下跳到另外一个地方,而是采用平滑移动的方式才可以,字符设备的第一个属性是 [c]。

数据接口文件(sockets):数据接口文件顾名思义就是利用 socket 承接网络数据的,它的属性是 [s],一般在 /run 或者 /tmp 这些目录中看到。

数据输送文件(FIFO,pipe):FIFO 也是一种特殊类型的文件,它的主要目的在于解决多个程序同时存取一个文件所造成的的错误问题,它的第一个属性为 [p]。

Linux 扩展名

说到这个扩展名其实就很头疼,Linux 中是没有扩展名这个概念的,但是又有一些扩展名的命名方式,这就很尴尬,所以暂且成为扩展类型吧。一般有下面几种

*.sh ,这是一个执行脚本或者批处理脚本,一般也被称为 shell 脚本,里面是一些 shell 语法写的指令。

.tar,.tar.gz,.zip,*.tgz,这种扩展类型是打包的压缩文件,根据不同的打包方式有不同的扩展类型

.html ,.php :网页相关文件,分别代表 HTML 和 PHP 语法的网页文件。

相关推荐:《Linux视频教程》

以上就是你一定要了解的linux权限(总结分享)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/749554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
告别Laravel前端资源管理混乱:BackpackBasset助你轻松优化加载与性能
上一篇 2025年11月25日 19:40:29
TikTok无法关注用户怎么办 关注功能异常解决方案
下一篇 2025年11月25日 19:40:29

相关推荐

  • VSCode调试FPGA工程的技巧(结合Vivado,快速定位问题)

    vscode在fpga开发中并非替代vivado,而是作为高效辅助工具提升开发效率。1. 在代码编写方面,vscode提供 superior 的语法高亮、自动补全和代码管理功能,显著优化verilog、systemverilog和tcl脚本的编写体验,并通过git实现无缝版本控制;2. 在仿真与自动…

    2026年9月22日
    1200
  • Apache Pulsar 主题分区创建与管理指南

    本文深入探讨Apache Pulsar主题分区的创建与管理。Pulsar主题分区是实现高吞吐量和可伸缩性的关键,但必须在主题创建时进行配置。文章详细介绍了两种主要的分区主题创建方法:通过Broker配置实现自动分区,以及利用Pulsar Admin API进行显式创建,并强调了分区主题一旦创建后不可…

    2026年9月22日
    100
  • PHP如何锐化图片效果_PHP对图片进行锐化处理

    PHP通过GD库或Imagick扩展实现图片锐化,核心是利用卷积算法增强边缘对比度;GD库使用imageconvolution()函数配合锐化矩阵处理,适合基础需求,而Imagick支持更精细的非锐化蒙版等高级算法,效果更优但需额外安装;锐化能提升视觉质量和用户体验,间接有利于SEO,但需避免过度锐…

    2026年9月22日
    300
  • 如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    在linux中查看文件系统类型时,df -t 适合查看已挂载分区的文件系统,而 lsblk -f 可查看所有块设备信息。1. df -t 显示已挂载的文件系统类型、磁盘使用情况及挂载点,适用于快速了解当前挂载目录所用文件系统;2. lsblk -f 列出包括未挂载设备的详细信息,如 uuid、lab…

    2026年9月22日 用户投稿
    300
  • 笔记—Linux安装OpenCV及VSCode的配置编译

    笔记—Linux安装OpenCV及VSCode的配置编译笔记—Linux安装OpenCV及VSCode的配置编译笔记—Linux安装OpenCV及VSCode的配置编译笔记—Linux安装OpenCV及VSCode的配置编译

    在学习新技能的过程中,我选择了在linux系统上进行操作,这对于从未接触过linux的人来说是一个绝佳的学习机会。这篇文章记录了我在linux上安装opencv的过程。 我选择的Linux发行版是Ubuntu 20.04.3,并将其安装在Virtual Box虚拟机中。Ubuntu的相关资料丰富,选…

    2026年9月22日 用户投稿
    100
  • PHP如何执行存储过程_PHP调用mysql存储过程的详细步骤

    PHP调用MySQL存储过程主要通过PDO实现,需先启用PDO扩展并建立数据库连接。1. 使用new PDO()连接MySQL;2. 调用无参存储过程如CALL get_users(),执行后获取结果集;3. 对带输入参数的存储过程使用bindParam绑定参数;4. 处理OUT参数时通过用户变量(…

    2026年9月22日
    000
  • laravel Spatie/laravel-medialibrary包高级用法_Laravel Spatie Medialibrary高级功能使用方法

    Spatie/laravel-medialibrary 支持自定义磁盘路径、响应式图像、WebP格式、媒体集合分类、自定义属性存储及签名URL安全访问,并可通过队列异步处理文件转换,提升性能与安全性。 在 Laravel 应用中,Spatie/laravel-medialibrary 是处理文件上传…

    2026年9月22日
    1300
  • 群友不讲武德,编写命令来获取蘑菇积分?

    群友不讲武德,编写命令来获取蘑菇积分?群友不讲武德,编写命令来获取蘑菇积分?群友不讲武德,编写命令来获取蘑菇积分?群友不讲武德,编写命令来获取蘑菇积分?

    大家好,我是陌溪 最近蘑菇不是上线了签到功能嘛,用户每天可以登录蘑菇,然后打卡进行签到。 蘑菇签到 同时,为了考虑到小伙伴们可能会忘记签到,还特意做了补签功能 发放补签卡 每周一只要在蘑菇排行榜的小伙伴,就会发放 1~2 张签到卡 蘑菇排行榜 目前蘑菇排行榜主要是通过积分来进行排序的,为了鼓励大家多…

    2026年9月22日 用户投稿
    300
  • Spring Boot集成MongoDB Atlas:正确配置与故障排除

    本教程详细指导如何在Spring Boot应用中正确配置与连接MongoDB Atlas集群。我们将重点讲解如何获取并使用正确的Atlas连接URI,安全地处理用户认证信息,以及准确指定目标数据库。通过实例代码和常见错误排查,帮助开发者避免连接失败,确保应用与MongoDB Atlas的顺畅集成。 …

    2026年9月22日
    600
  • Prestashop分页隐藏分类描述的SEO考量与处理

    本文探讨了Prestashop商店中分类描述在分页后消失的问题。我们解释了这种现象通常并非SEO问题,因为搜索引擎主要关注第一页的描述内容。教程将深入分析此行为背后的SEO逻辑,并提供确保网站SEO友好的最佳实践,强调第一页描述的重要性及规范使用Canonical标签。 Prestashop分类描述…

    2026年9月22日
    100
  • 如何利用 JavaScript 实现一个支持拖放排序的交互界面?

    答案是利用HTML5拖放API实现拖拽排序,通过设置draggable属性和监听dragstart、dragover、drop事件控制元素移动,结合CSS提升交互反馈。 要实现一个支持拖放排序的交互界面,核心是利用 HTML5 的拖放 API(Drag and Drop API)结合 JavaScr…

    2026年9月22日
    000
  • 瑞达写作官方网站登录端 瑞达写作App官方使用入口

    瑞达写作官方登录入口为https://ipapers.net,该平台支持论文初稿快速生成、多学科适配、智能修改及问卷报告自动化,集成国标引文与权威数据源,提供图表、代码等多元内容生成服务。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 瑞达…

    2026年9月22日
    000
  • VSCode设置SSH远程开发(安全连接,跨平台开发指南)

    vscode的ssh远程开发功能通过ssh协议实现本地编辑器与远程服务器的安全连接,让用户能在本地直接操作远程代码,享受与本地一致的开发体验。首先需安装“remote – ssh”扩展并配置~/.ssh/config文件,定义host、hostname、user、port和identit…

    2026年9月22日
    000
  • Symfony 测试中设置请求内容:模拟 API 用户注册

    在 Symfony 单元测试中模拟 API 请求,特别是针对用户注册场景,重点讲解如何设置包含特定 Header(如 x-auth-token)以及 Form-Data 格式的请求体,并提供示例代码和注意事项,帮助开发者编写更可靠的 API 测试。 在 Symfony 中进行单元测试时,经常需要模拟…

    2026年9月22日
    000
  • Apache POI生成带水印DOCX文件时的XML内容错误解析与应对

    本文深入探讨了使用Apache POI生成带有水印的DOCX文件时,可能遇到的“XML声明只能出现在输入开头”错误。该错误通常指向DOCX内部XML文件(如header4.xml)的格式问题,导致文件在Microsoft Word中无法打开。文章分析了错误原因,并提供了包括升级POI版本、手动检查D…

    2026年9月22日
    100
  • 【工具分享】坐标转换工具

    内容简介 本文将介绍一个实用的坐标转换工具,帮助用户在GCJ-02和WGS84坐标系之间轻松转换数据。阅读完本文,您将了解如何获取此工具。工具获取方式将在文章末尾详细说明。 工具简介与参数介绍如图所示,工具界面简洁明了,包含三个参数,下面将对这三个参数进行简要介绍。 待转换图层此参数是工具的输入参数…

    2026年9月22日
    100
  • 爱应用pc版官方网址入口 爱应用pc版平台访问官网直达链接

    爱应用PC版官方网址是https://www.aiyingyong.com,该平台提供Win10应用推荐、游戏中心及软件下载服务,设有每日精品、分类合集、专题评测等功能板块,并支持用户互动交流与资源更新。 爱应用pc版官方网址入口在哪里?这是不少网友都关注的,接下来由PHP小编为大家带来爱应用pc版…

    2026年9月22日
    000
  • 配置PHP多线程的性能监控_通过监控优化php多线程怎么实现的效率

    PHP虽不支持传统多线程,但可通过pthreads扩展在CLI模式下实现;合理设置线程数、使用线程池、集成性能监控工具并优化任务分配可显著提升执行效率。 PHP 本身并不支持传统意义上的多线程,因为它默认运行在 Web 服务器(如 Apache 或 Nginx)的 CGI/FPM 模式下,每个请求是…

    2026年9月22日
    300
  • linux远程ssh连接不上?

    昨天下班回到家后,我试图连接linux来部署一个docker项目,却发现无法连接。 我对这类Linux问题的排查能力不足,只能通过错误信息在百度上搜索解决方案,但毫无效果。随后我想到可能是之前修改了配置文件,导致SSH服务出现问题。于是,我通过阿里云控制台使用救援连接,成功进入了SSH服务,并发现S…

    2026年9月22日
    200
  • PHP 表单验证:确保 HTML select 下拉菜单已正确选择非默认选项

    本文将详细介绍如何在 PHP 后端对 HTML select 下拉菜单进行有效验证,确保用户选择了非默认选项。我们将探讨常见的验证误区,并提供一个简洁高效的解决方案,通过检查 $_POST 数据来判断用户是否已做出有效选择,从而避免表单提交无效数据,提升用户体验和数据准确性。 在构建 web 表单时…

    2026年9月22日
    200

发表回复

登录后才能评论
关注微信