目录

Unix/Linux 系统下的文件权限

文件权限

drwxr-xr-x 是一个常见的 Unix/Linux 文件系统中的权限表示法,用于描述文件或目录的访问权限。它由 10 个字符组成,每个字符的位置和含义如下:

  1. 第一个字符:文件类型

    • d 表示目录 (directory)
    • 表示普通文件 (regular file)
    • l 表示符号链接 (symbolic link)
    • 其他字符如 b (块设备), c (字符设备), s (套接字) 等
  2. 接下来的九个字符:权限位,分为三组,每组三个字符,分别表示文件所有者、文件所属组、其他用户的权限。

权限位的详细解释

每组三个字符分别表示读、写、执行权限。这三组权限依次表示:

  1. 文件所有者的权限
  2. 文件所属组的权限
  3. 其他用户的权限

每个权限字符的含义如下:

  • r 表示读 (read)
  • w 表示写 (write)
  • x 表示执行 (execute) 或进入目录

例子解释:drwxr-xr-x

第一个字符 (d):表示这是一个目录。

  1. 文件所有者的权限 (rwx):

    • r:读权限。文件所有者可以读取目录中的文件列表。
    • w:写权限。文件所有者可以在目录中创建、删除文件或子目录。
    • x:执行权限。文件所有者可以进入目录。
  2. 文件所属组的权限 (r-x):

    • r:读权限。组成员可以读取目录中的文件列表。
    • -:没有写权限。组成员不能在目录中创建、删除文件或子目录。
    • x:执行权限。组成员可以进入目录。
  3. 其他用户的权限 (r-x):

    • r:读权限。其他用户可以读取目录中的文件列表。
    • -:没有写权限。其他用户不能在目录中创建、删除文件或子目录。
    • x:执行权限。其他用户可以进入目录。

对应的数字权限

每组三个字符可以转换为一个八进制数字,rwx 表示 7,r-x 表示 5,所以 drwxr-xr-x 可以转换为 0755。

权限字符与数字的对应关系:

  • rwx = 4 (读) + 2 (写) + 1 (执行) = 7
  • r-x = 4 (读) + 0 (无写权限) + 1 (执行) = 5

如何设置权限

使用 chmod 命令来修改文件或目录的权限。比如,将一个目录的权限设置为 0755:

shell 复制代码
chmod 755 mydir

这个命令将设置 mydir 目录的权限,使得所有者具有读、写、执行权限,而组和其他用户具有读和执行权限。

例子

假设你有一个目录 mydir,它的权限是 drwxr-xr-x:

shell 复制代码
$ ls -ld mydir
drwxr-xr-x  2 user  group  4096 Jan  1 12:34 mydir
  • 类型:d 表示 mydir 是一个目录。
  • 所有者权限:rwx 表示用户 user 可以读取、写入和执行 (进入) 该目录。
  • 组权限:r-x 表示组 group 的成员可以读取和执行 (进入) 该目录,但不能写入。
  • 其他用户权限:r-x 表示其他用户可以读取和执行 (进入) 该目录,但不能写入。
本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
chem41119 分钟前
Conmon lisp Demo
服务器·数据库·lisp
渗透测试老鸟-九青11 分钟前
面试经验分享 | 成都渗透测试工程师二面面经分享
服务器·经验分享·安全·web安全·面试·职场和发展·区块链
m0_5557629020 分钟前
QT 动态布局实现(待完善)
服务器·数据库·qt
极客柒1 小时前
RustDesk 开源远程桌面软件 (支持多端) + 中继服务器伺服器搭建 ( docker版本 ) 安装教程
服务器·docker·开源
共享家95272 小时前
深入剖析Linux常用命令,助力高效操作
linux·运维·服务器
Zfox_2 小时前
【C++项目】从零实现RPC框架「四」:业务层实现与项目使用
linux·开发语言·c++·rpc·项目
吃旺旺雪饼的小男孩2 小时前
Ubuntu 22.04 安装和运行 EDK2 超详细教程
linux·运维·ubuntu
IT小馋猫2 小时前
Linux 企业项目服务器组建(附脚本)
linux·服务器·网络
阿政一号2 小时前
Linux进程间通信:【目的】【管道】【匿名管道】【命名管道】【System V 共享内存】
linux·运维·服务器·进程间通信
又过一个秋3 小时前
【sylar-webserver】7 定时器模块
linux·c++