详解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发行版和版本而略有不同,请根据实际情况调整命令的具体细节。

### chown 和 chmod 命令使用教程 #### 更改文件或目录的所有者和组:`chown` `chown`命令用于更改指定文件或目录的所有者以及所属的用户组。此操作通常需要管理员权限。 语法如下: ```bash chown [选项] 用户[:群组] 文件... ``` 常用选项包括但不限于: - `-R`: 对各级子目录下的所有文件进行递归处理。 - `--help`: 显示帮助信息并退出。 - `--version`: 输出版本信息并退出[^2]。 例如,要将 `/path/to/file.txt` 的所有权更改为用户 `newuser` 并将其分配到新的用户组 `newgroup` 中,则应执行以下命令: ```bash sudo chown newuser:newgroup /path/to/file.txt ``` 如果只需要改变所有者而保持原有用户组不变, 可省略冒号后的部分: ```bash sudo chown newuser /path/to/file.txt ``` #### 设置文件或目录的访问权限:`chmod` `chmod`命令用来修改文件或目录的读取、写入及执行权限。可以通过符号模式或者八进制数来设定这些属性。 对于符号模式而言,基本结构为: ```bash chmod [who][operator][permission] 文件名 ``` 其中, - `[who]` 表示哪些用户的权限受到影响 (`u`=用户自己; `g`=同组成员;`o`=其他所有人;`a`=全部); - `[operator]` 是加(`+`)减(-)等于(=),表示增加/移除特定权限或是完全替换现有权限; - `[permissions]` 则指定了具体的权限类型 (r=read,w=write,x=execute)[^3]. 举个例子来说,为了让某个脚本可被执行,可以这样做: ```bash chmod u+x script.sh ``` 这会赋予当前用户对该脚本的执行权而不影响其他人。 另外一种方式是通过三位数字的形式定义权限级别,每一位分别对应着用户(user), 组(group), 其他人(others): | 数字 | 权限 | |------|------------| | 0 | --- | | 1 | --x | | 2 | -w- | | 3 | -wx | | 4 | r-- | | 5 | r-x | | 6 | rw- | | 7 | rwx | 因此,如果你想让一个文件具有只对自己可见且不可编辑也不允许运行的状态,你可以这样设置其权限: ```bash chmod 600 private_file.txt ``` 同样地,在给予团队协作项目中的文档适当共享的同时保护隐私安全方面也十分有用处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值