news 2026/5/25 16:43:38

Linux的权限

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux的权限

1. 怎么看权限? (ls -l)

在终端输入ls -l,你会看到类似下面的一行“天书”:

Bash

drwxr-xr-x 2 user dev 4096 Dec 12 10:00 project/

我们需要关注的是最前面的 10 个字符drwxr-xr-x,它分为 4 个部分解读:

字符位置

字符

含义

解释

第 1 位

d

文件类型

d= 目录 (Directory)


-= 普通文件


l= 软连接

第 2-4 位

rwx

所有者权限(User)

文件主人的权限

第 5-7 位

r-x

所属组权限(Group)

同组同事的权限

第 8-10 位

r-x

其他人权限(Others)

既不是主人也不是同事的路人权限

  • r(Read): 读。对文件是查看内容;对目录是列出文件名 (ls)
  • w(Write): 写。对文件是修改内容;对目录是新建/删除文件
  • x(Execute): 执行。对文件是运行程序;对目录是进入目录 (cd)
  • -: 无权限。

2. 怎么改权限? (chmod)

chmod(Change Mode) 是修改权限的核心命令。有两种改法:

方法 A:数字法 (最常用,适合配合记忆)

这是高手的用法,简单快捷。每个权限对应一个数字:

  • r = 4
  • w = 2
  • x = 1

你把这三个数字加起来,就是该角色的权限值。

  • rwx= 4 + 2 + 1 =7(全开)
  • rw-= 4 + 2 + 0 =6(读写)
  • r-x= 4 + 0 + 1 =5(读+执行)

常见组合:

  • chmod 777 file: 所有人都有所有权限(极不安全,慎用)。
  • chmod 755 file: 自己全权负责,别人只能看和运行(程序/脚本的标准配置)。
  • chmod 644 file: 自己读写,别人只读(配置文件的标准配置)。
  • chmod 600 file: 只有自己能读写,别人无权访问(SSH 密钥/私密文件的标准配置)。
方法 B:字母法 (逻辑清晰)

适合只修改某个角色的特定权限。

  • 角色:u(User),g(Group),o(Others),a(All)
  • 操作:+(增加),-(删除),=(设定)
  • 权限:r,w,x

例子:

  • chmod +x script.sh: 给所有人增加执行权限。
  • chmod u+x script.sh: 只给文件主人增加执行权限。
  • chmod go-w file.txt: 删掉组和其他人的写权限。

3. 怎么改归属? (chown)

有时候权限没问题,但文件主人错了(比如root创建的文件,普通用户改不动)。这时需要chown(Change Owner)。

Bash

# 语法:chown 用户名:组名 文件路径 # 1. 改变文件所有者为 user sudo chown user file.txt # 2. 改变文件所有者为 user,所属组为 dev sudo chown user:dev file.txt # 3. 递归改变整个目录及其下所有文件的归属(常用!) sudo chown -R user:dev /var/www/html

进阶:特殊权限 (SetUID, Sticky Bit)

除了 rwx,Linux 还有几个特殊权限,面试或高阶操作会用到。

  • SetUID (s权限,出现在 User 的x位)
    • 现象:rwsr-xr-x
    • 作用: 普通用户运行这个程序时,临时获得该程序所有者(通常是 root)的身份
    • 例子:passwd命令。普通用户也能改密码(修改/etc/shadow),就是因为它有 SetUID 权限。
  • Sticky Bit (t权限,出现在 Others 的x位)
    • 现象:rwxrwxrw**t**
    • 作用: 在这个目录下,只有文件的主人才能删除自己的文件,别人(哪怕有写权限)也不能删你的。
    • 例子:/tmp目录。大家都能往里写东西,但不能互删别人的临时文件。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 6:14:22

Springboot医药采购管理2mqc3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表 项目功能:员工,供货商,药品信息,销售订单,药品采购,采购退货,库存盘点 开题报告内容 进度安排: 1、XXXX年X月X日-XXXX年X月XX日:完成前期资料的搜集与整理,撰写开题报告以及开题PPT。 2、XXXX年X月X日-XXXX年…

作者头像 李华
网站建设 2026/5/26 6:14:17

Flutter 通用轮播图组件 BannerWidget:自动播放 + 指示器 + 全场景适配

在 Flutter 开发中,轮播图(Banner)是首页广告、商品推荐、活动展示的核心组件。原生 PageView 需手动实现自动播放、指示器联动、图片加载等逻辑,重复开发易导致体验不一致。本文封装的 BannerWidget 整合 “自动播放 循环滚动 …

作者头像 李华
网站建设 2026/5/26 6:15:07

【JavaWeb】ServletConfig为Servlet提供配置参数

ServletConfig的使用 ServletConfig是什么? 为Servlet提供初始配置参数的一种对象,每个Servlet都有自己独立唯一的ServletConfig对象容器会为每个Servlet实例化一个ServletConfig对象,并通过Servlet生命周期的init方法传入给Servlet作为属性 …

作者头像 李华
网站建设 2026/5/25 5:08:01

Flutter 测试驱动开发的基本流程

欢迎大家加入开源鸿蒙跨平台开发者社区,一起共建开源鸿蒙跨平台生态。### Flutter 测试驱动开发(TDD)实践指南 测试驱动开发(TDD)是一种软件开发方法,强调在编写功能代码之前先编写测试用例。通过这种方式…

作者头像 李华
网站建设 2026/5/24 0:06:26

[UUCTF 2022 新生赛]ezpop

1.打开先看代码<?php //flag in flag.php error_reporting(0); class UUCTF{public $name;public $key;public $basedata;public $ob;function __construct($str){$this->name$str;}function __wakeup(){if($this->key"UUCTF"){$this->obunserialize(ba…

作者头像 李华
网站建设 2026/5/24 6:25:58

盛水最多的容器(滑动窗口 双指针)

这道题当然可以暴力求解&#xff0c;O(N^2),但是有时候并不会通过&#xff0c;因此要想一个时间复杂度为O&#xff08;N&#xff09;的方法。如果说用滑动窗口肯定会有人会有疑问&#xff0c;这怎么用&#xff1f;下面直接说解法&#xff1a;首先left与right分别指向数组的两边…

作者头像 李华