reference/docs/chown.md

150 lines
2.9 KiB
Markdown
Raw Normal View History

Chown 备忘清单
===
这份快速参考备忘单提供了改变文件或目录的所有者的简要概述,以及 chown 命令的操作
入门
--------
### 介绍
2024-01-13 14:18:37 +08:00
Linux/Unix 系统中的一个命令,全称为 `change owner`,用于改变文件或目录的所有者
2024-01-13 14:18:37 +08:00
```shell
chown [选项] [所有者][:[组]] 文件或目录名
```
2024-01-13 14:18:37 +08:00
命令可以更改某个文件或目录的属主owner也可以同时更改其属组group
#### 示例
```shell
2024-01-13 14:18:37 +08:00
$ chown :groupname file1.txt
$ chown -R username:groupname *
$ chown $USER file.txt
```
2024-01-13 14:18:37 +08:00
`注意` 只有超级用户(root)才有权限改变文件或目录的所有者
### 选项
- `-c` : 显示更改的部分的信息
- `-f` : 忽略错误信息
- `-h` :修复符号链接
- `-v` : 显示详细的处理信息
- `-R` : 处理指定目录以及其子目录下的所有文件
- `--help` : 显示辅助说明
- `--version` : 显示版本
示例
--------
2024-01-13 14:18:37 +08:00
### 更改文件所有者
```shell
2024-01-13 14:18:37 +08:00
$ chown root /var/run/httpd.pid
```
2024-01-13 14:18:37 +08:00
`/var/run/httpd.pid` 的所有者设为 `root`
#### 仅更改所有者
```bash
$ chown new_owner file.txt
```
### 递归更改目录及其内容的所有者
<!--rehype:wrap-class=row-span-2-->
```shell
2024-01-13 14:18:37 +08:00
chown -R new_owner:new_group directory/
```
2024-01-13 14:18:37 +08:00
将文件夹 `directory` 的拥有者设为 `new_owner` ,群体的使用者设为 `new_group`
```shell
2024-01-13 14:18:37 +08:00
$ chown username:groupname file1.txt
```
2024-01-13 14:18:37 +08:00
将文件 file1.txt 的拥有者设为 `username` ,群体的使用者设为 `groupname`
```shell
2024-01-13 14:18:37 +08:00
$ chown -R username:groupname *
```
将当前目录以及子目录的所有文件的拥有者设为 `username` ,群体的使用者设为 `groupname`
### 更改所有者为当前用户
```bash
$ chown $USER file.txt
```
递归更改目录及其内容的所有者为当前用户
```bash
sudo chown -R $USER directory/
```
### 递归并且不显示错误信息
```bash
chown -R -f new_owner:new_group directory/
```
更改目录及其内容的所有者和组为 `alice`
```bash
chown -R alice: directory/
```
### 仅更改组
```shell
$ chown :groupname file1.txt
```
不修改文件 `file1.txt` 的拥有者,将文件使用群体改为 `groupname`
### 变更符号链接的所有者
<!--rehype:wrap-class=row-span-2-->
```bash
$ chown -h new_owner:new_group symlink
```
变更符号链接的所有者而不是链接指向的文件
```bash
$ chown -h manager symlink
```
更改符号链接的所有者为"manager"
### 更改所有者为根用户
<!--rehype:wrap-class=row-span-2-->
```bash
sudo chown root:root file.txt
```
#### 递归更改所有者为当前用户
```bash
sudo chown -R $USER directory/
# 更改目录及其内容的所有者和组为"alice":
chown -R alice: directory/
```
### 将文件所有者更改为其他用户,但保留组
```bash
chown new_owner file.txt
```
### 将文件所有者更改为其他用户,同时更改组
```bash
chown new_owner:new_group file.txt
```