网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
在Shell下,`chmod`命令用于改变文件或目录的权限。这些权限决定了谁可以读取、写入或执行文件。在Unix和类Unix系统(如Linux和macOS)中,文件权限分为三组:文件所有者(user)、与文件所有者同组的用户(group)、以及其他所有用户(others)。
`chmod`命令可以通过数字模式或符号模式来更改权限。
### 数字模式
在数字模式下,每个权限(读、写、执行)被赋予一个数字值:
- 读(r)= 4
- 写(w)= 2
- 执行(x)= 1
要将这些值分配给不同的用户组(所有者、组、其他),你可以将它们相加。例如,要设置权限,使得所有者可以读、写和执行(4+2+1=7),而组用户和其他用户只能读和执行(4+1=5),你可以使用如下命令:
```bash
chmod 755 filename
```
### 符号模式
在符号模式下,你可以使用字母来表示权限的增加(`+`)、删除(`-`)或设置(`=`)操作。这些字母对应于读(`r`)、写(`w`)和执行(`x`)权限。
- 给所有用户增加执行权限:
```bash
chmod a+x filename
```
这里,`a`代表所有用户(all users)。
- 仅给文件所有者增加写权限:
```bash
chmod u+w filename
```
这里,`u`代表文件所有者(user)。
- 移除组用户的写和执行权限:
```bash
chmod g-wx filename
```
这里,`g`代表组用户(group)。
- 设置其他用户的权限为只读:
```bash
chmod o=r filename
```
这里,`o`代表其他用户(others)。
### 递归更改目录及其内容的权限
如果你想要递归地更改目录及其内部所有文件和子目录的权限,你可以使用`-R`(或`--recursive`)选项:
```bash
chmod -R 755 directoryname
```
这将把`directoryname`目录及其所有子目录和文件的权限更改为所有者具有读、写和执行权限,而组用户和其他用户只有读和执行权限。
### 注意
- 使用`chmod`时要谨慎,特别是当以root用户身份或以超级用户权限执行时,因为不恰当的权限设置可能会带来安全风险。
- 在进行权限更改之前,最好先使用`ls -l`命令检查文件的当前权限,以确保你了解正在进行的更改。
chmod 777 test.jpg // 修改test.jpg权限为:可读可写可执行
在修改文件的基础上,增加:-R
chmod -R 777 face_out //修改face_out文件夹下所有文件的权限为可读可写可执行
chmod -R 777 × //修改当前目录下所有文件及子目录的权限
其实,“-R”表示递归文件夹中所有文件