linux--文件权限控制

 

1. 权限格式详解

权限字符串格式:
-rwxr-xr-- 1 root staff 1024 Jan 1 10:00 file.txt
(共10位,首字符表示文件类型,后9位分3组权限)

① 首字符:文件类型

字符含义示例
- 普通文件 -rwxr--r--
d 目录 drwxr-xr-x
l 符号链接(软链接) lrwxrwxrwx
c 字符设备文件 /dev/tty
b 块设备文件 /dev/sda
s Socket 文件 较少见
p 管道文件(FIFO) 进程间通信

② 后9位:权限分组

每3位一组,分别对应:
用户(Owner) | 组(Group) | 其他(Others)
rwx | r-x | r--

  • 权限字符含义:
    • r (Read):读权限(数值 4)
    • w (Write):写权限(数值 2)
    • x (eXecute):执行权限(数值 1)
    • -:无对应权限

2. 权限数值计算

每组权限的数值是 rwx 对应值的和:

权限组合数值计算示例
rwx 4+2+1=7 用户权限 7
r-x 4+0+1=5 组权限 5
r-- 4+0+0=4 其他权限 4
--- 0+0+0=0 无权限

完整权限示例:
-rwxr-xr-- = 用户(7) + 组(5) + 其他(4) = 754


3. 修改权限的常用命令

(1) chmod:修改文件权限

  • 符号模式(推荐新手):

    bash
    chmod u+x file.txt # 给用户添加执行权限
    chmod g-w file.txt # 移除组的写权限
    chmod o=r file.txt # 设置其他用户仅可读
    chmod a+r file.txt # 给所有用户添加读权限(a=all)
  • 数字模式(高效):

    bash
    chmod 755 file.txt # 设置权限为 -rwxr-xr-x
    chmod 644 script.sh # 设置权限为 -rw-r--r--(脚本通常需要执行权限)

(2) chown:修改文件所有者/组

bash
chown user:group file.txt # 修改所有者和组
chown user file.txt # 仅修改所有者
chown :group file.txt # 仅修改组

(3) chgrp:修改文件组(较少用)

bash
chgrp developers file.txt # 将组改为 developers

4. 权限的实际作用

(1) 对普通文件的影响

  • r:允许查看文件内容(如 catless)。
  • w:允许修改文件内容(如 echo 重定向、vim 编辑)。
  • x:允许将文件作为程序执行(如 ./script.sh)。

(2) 对目录的影响

目录的权限行为与文件不同:

  • r:允许列出目录内容(如 ls)。
  • w:允许在目录中创建/删除/重命名文件(需同时有目标文件的写权限)。
  • x:允许进入目录(如 cd)或访问目录内文件的元信息(如 stat)。

示例:
若目录权限为 drwxr-xr--(754):

  • 用户(Owner):可读、写、进入目录。
  • 组(Group):可读、进入目录,但不能创建/删除文件(缺少 w)。
  • 其他用户:仅可读目录名(无法进入或查看内容)。

5. 特殊权限位(进阶)

在标准权限之外,还有3个特殊权限位(位于用户权限前):

权限位字符数值作用
SUID s 4 文件执行时以所有者身份运行
SGID s 2 目录中新建文件继承组身份
Sticky t 1 目录中仅文件所有者可删除文件

示例:
-rwsr-xr-t = SUID(4) + 用户权限(7) + 组权限(5) + Sticky(1)


6. 权限最佳实践

  1. 最小权限原则:仅授予必要的权限(如脚本通常设为 755 或 750)。
  2. 避免 777:对世界可写(o+w)的文件可能导致安全风险。
  3. 目录需执行权限:进入目录必须要有 x 权限。
  4. 脚本添加执行权限:
    bash
    chmod +x script.sh # 自动给用户添加 x 权限

7. 权限查看命令

bash
ls -l file.txt # 查看单个文件权限
ls -ld /dir # 查看目录本身权限(而非内容)
stat file.txt # 显示详细权限信息(包括特殊权限)
namei -l /path # 检查路径中每一级的权限(排查权限问题)

总结表

概念示例说明
标准权限 -rwxr-xr-- (754) 用户/组/其他权限组合
特殊权限 -rwsr-sr-t SUID/SGID/Sticky
修改命令 chmod 755 file.txt 常用权限设置方式
权限作用 目录需 x 才能进入 文件与目录权限行为不同
posted @ 2025-07-19 17:08  Yu-potato  阅读(119)  评论(0)    收藏  举报