详解Linux命令--chmod

chmod 命令是Linux中最常用的命令之一,用于更改文件或目录的权限。本文将详细介绍chmod命令的用法,并给出具体的示例。

1. 基本语法

chmod的基本语法如下:

chmod [options] mode file...
  • [options]:可选参数,用于控制权限更改行为。
  • mode:要设置的权限模式。
  • file...:要更改权限的文件或目录。

2. 权限模式

权限模式可以用符号表示法或者数字表示法。

2.1 符号表示法

2.1.1 用户类型
  • u:用户(文件所有者)。
  • g:组(文件所属组)。
  • o:其他人。
  • a:所有用户(等同于ugo)。
2.1.2 权限
  • r:读权限。
  • w:写权限。
  • x:执行权限。
  • s:设置UID/GID位。
  • t:粘滞位。
  • S:无执行权限的设置UID/GID位。
  • T:无执行权限的粘滞位。
  • -:清除权限。
2.1.3 操作
  • +:添加权限。
  • -:移除权限。
  • =:设置权限(替换现有的权限)。
示例:
  • 添加用户读权限:chmod u+r file1.txt
  • 移除组写权限:chmod g-w file1.txt
  • 设置所有用户执行权限:chmod a+x file1.txt
  • 清除其他人的所有权限:chmod o-rwx file1.txt
  • 设置文件所有者的设置UID位:chmod u+s file1.txt

2.2 数字表示法

2.2.1 权限对应的数字
  • 4:读权限。
  • 2:写权限。
  • 1:执行权限。
  • 0:无权限。
2.2.2 用户类型
  • 400:用户权限。
  • 200:组权限。
  • 100:其他用户权限。
示例:
  • 设置文件所有者读写权限,组和其他人只读权限:chmod 644 file1.txt
  • 设置文件所有者和组有执行权限,其他人没有:chmod 750 file1.txt

3. 常用选项

3.1 -R

递归更改目录及其子目录内的文件权限。

示例:

递归更改目录mydir及其子目录内的文件权限:

chmod -R 755 mydir

3.2 -v

详细模式,显示更改权限的过程。

示例:

详细模式更改文件file1.txt的权限:

chmod -v 755 file1.txt

3.3 -f

强制更改权限,即使文件不可写也不提示错误。

示例:

强制更改文件file1.txt的权限:

chmod -f 755 file1.txt

3.4 -c

仅当权限改变时才更改权限。

示例:

仅当权限改变时更改文件file1.txt的权限:

chmod -c 755 file1.txt

3.5 --preserve-root

阻止对/目录更改权限。

示例:

阻止对/目录更改权限:

chmod --preserve-root 755 /

3.6 --reference=FILE

按照FILE的权限设置目标文件的权限。

示例:

按照file2.txt的权限设置file1.txt的权限:

chmod --reference=file2.txt file1.txt

3.7 --version

显示版本信息。

示例:

显示chmod命令的版本信息:

chmod --version

3.8 --help

显示帮助信息。

示例:

显示chmod命令的帮助信息:

chmod --help

4. 实战案例

4.1 更改文件权限

更改文件file1.txt的权限为所有者读写,组和其他人只读:

chmod 644 file1.txt

4.2 更改文件权限(符号表示法)

更改文件file1.txt的权限,添加所有者执行权限,移除组写权限,设置其他人只读权限:

chmod u+x,g-w,o-r file1.txt

4.3 递归更改目录权限

递归更改目录mydir及其子目录内的文件权限为所有者读写执行,组和其他人只读执行:

chmod -R 755 mydir

4.4 详细模式更改文件权限

详细模式更改文件file1.txt的权限为所有者读写执行,组和其他人只读执行:

chmod -v 755 file1.txt

4.5 强制更改文件权限

强制更改文件file1.txt的权限为所有者读写执行,组和其他人只读执行:

chmod -f 755 file1.txt

4.6 仅当权限改变时更改文件权限

仅当权限改变时更改文件file1.txt的权限为所有者读写执行,组和其他人只读执行:

chmod -c 755 file1.txt

4.7 按照参考文件更改文件权限

按照file2.txt的权限设置file1.txt的权限:

chmod --reference=file2.txt file1.txt

请注意,某些命令的选项和语法可能会因不同的Linux发行版和版本而略有不同,请根据实际情况调整命令的具体细节。

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值