【chmod】深入了解,一篇就够

chmod 是 Linux 和 Unix 系统中用于更改文件或目录权限的命令。权限控制是系统安全的重要组成部分,决定了哪些用户可以读取、写入或执行文件。

目录

1.基本语法

2.权限类型

3.符号模式

示例

4.数字模式

示例

5.特殊权限

6.常用命令示例

7.查看文件权限

总结



1.基本语法

chmod [选项] 模式 文件或目录
  • 选项:常用的选项包括:

    • -R:递归更改目录及其内容的权限。

    • -v:显示详细信息。

    • -c:仅在更改时显示信息。

  • 模式:指定权限的方式,可以是符号模式(如 u+x)或数字模式(如 755)。

  • 文件或目录:要更改权限的目标文件或目录。


2.权限类型

每个文件或目录有三类权限:

  1. 用户(User, u:文件的所有者。

  2. 组(Group, g:文件所属的用户组。

  3. 其他(Others, o:其他用户。

每类权限包括:

  • 读(Read, r:允许读取文件内容或列出目录内容。

  • 写(Write, w:允许修改文件内容或在目录中创建/删除文件。

  • 执行(Execute, x:允许执行文件或进入目录。


3.符号模式

符号模式使用 ugo 和 a(所有用户)来指定权限,并通过 +- 和 = 来添加、删除或设置权限。

示例
  1. 给文件所有者添加执行权限:

    chmod u+x my_script.sh
  2. 给所有用户添加读权限:

    chmod a+r my_file.txt
  3. 移除组和其他用户的写权限:

    chmod go-w my_file.txt
  4. 设置文件所有者的权限为读写,组和其他用户的权限为只读:

    chmod u=rw,go=r my_file.txt
     

4.数字模式

数字模式使用三位或四位的八进制数表示权限:

  • 第一位(可选):设置特殊权限(如 setuidsetgidsticky bit)。

  • 后三位:分别表示用户、组和其他用户的权限。

每位数字由以下权限值相加:

  • 4:读(r)。

  • 2:写(w)。

  • 1:执行(x)。

示例
  1. 设置文件所有者为读写执行,组和其他用户为读执行:

    chmod 755 my_script.sh
    • 7:用户权限(4 + 2 + 1 = 读写执行)。

    • 5:组权限(4 + 1 = 读执行)。

    • 5:其他用户权限(4 + 1 = 读执行)。

  2. 设置文件所有者为读写,组和其他用户为只读:

    chmod 644 my_file.txt
    • 6:用户权限(4 + 2 = 读写)。

    • 4:组权限(4 = 只读)。

    • 4:其他用户权限(4 = 只读)。

  3. 设置目录权限为所有用户可读、写、执行:

    chmod 777 my_directory
     

5.特殊权限

  1. setuid(4

    • 当文件被执行时,进程的所有者变为文件的所有者。

    • 示例:

      chmod 4755 my_script.sh
  2. setgid(2

    • 当文件被执行时,进程的组变为文件的组。

    • 对于目录,新创建的文件会继承目录的组。

    • 示例:

      chmod 2755 my_directory
  3. sticky bit(1

    • 对于目录,只有文件的所有者或 root 用户可以删除文件。

    • 示例:

      chmod 1777 my_directory
       

6.常用命令示例

  1. 赋予脚本执行权限

    chmod +x my_script.sh
  2. 递归更改目录权限

    chmod -R 755 my_directory
  3. 移除其他用户的写权限

    chmod o-w my_file.txt
  4. 设置文件为只读

    chmod 444 my_file.txt
     

7.查看文件权限

使用 ls -l 查看文件或目录的权限:

ls -l my_script.sh

输出示例:

-rwxr-xr-x 1 user group 1234 Oct 10 12:34 my_script.sh
  • 第一列(-rwxr-xr-x)表示权限:

    • -:文件类型(- 表示普通文件,d 表示目录)。

    • rwx:用户权限。

    • r-x:组权限。

    • r-x:其他用户权限。


总结

  • chmod 是管理文件权限的重要工具。

  • 可以使用符号模式或数字模式设置权限。

  • 特殊权限(如 setuidsetgidsticky bit)可以增强文件或目录的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值