Linux chown 命令示例
为了安全起见,每个文件和文件夹都与 Linux 中的特定用户和组相关联。每个用户和组的权限都不同,并非所有用户和组都可以访问所有文件和文件夹。有时我们需要从终端更改任何文件或文件夹的所有权和组权限。使用“chown”命令可以轻松完成此任务。本教程通过不同的示例展示了“chown”命令的用法。
语法:
chown [OPTION]… --reference=RFILE FILE…
`chown` 命令可以与文件名或参考文件名一起使用。对于此命令,OPTION、OWNER 或 GROUP 是可选的。可以为任何文件或文件夹分配三类用户的三种权限。用户类型为用户、组和其他,权限为读取(r)、写入(r) 和执行(x )。
选项:
- -c or –changes
显示实际文件所有权的更改。
- –reference=FILE
用于根据参考文件更改任何文件或文件夹的所有权。
- -R or –recursive
用于递归地更改目录的所有权。
- –dereference
根据符号链接指向的位置进行操作。
- -h or –no-dereference
对符号链接本身进行操作。
- -f or –silent or –quiet
对于那些所有权无法更改的文件,错误消息将被忽略。
- -v or –verbose
显示 chown 命令对每个文件采取的操作。
示例 1:更改文件的用户所有权
用户必须具有 root 权限才能更改文件和文件夹的用户或组所有权。以下“chown”命令会将文本文件“test.txt”的用户所有权更改为“root”。
$ sudo chown root test.txt
$ ls -l test.txt
输出:
示例 2:更改文件的组所有权
用户必须在组名前使用“:”来更改任何文件和文件夹的组所有权。以下“chown”命令会将“students.txt”文件的组所有权更改为“testing”组。
$ sudo chown :testing students.txt
$ ls -l students.txt
输出:
示例 3:更改文件的用户和组所有权
用户和组所有权都可以使用“chown”命令一起更改。以下“chown”命令会将文件“test.txt”的用户所有权更改为“fahmida”,并将组所有权更改为“testing”。
$ sudo chown fahmida:testing test.txt
$ ls -l test.txt
输出:
示例 4:根据特定用户更改文件的所有权
如果您想根据当前所有权更改任何文件或文件夹的所有权,则必须将“-from”选项与“chown”命令一起使用。此示例中的第一个“chown”命令将无法更改所有权,因为当前所有者是“fahmida”而不是“root”。第二个“chown”命令会将文件“test.txt”的用户所有权从“fahmida”更改为“yesmin”。
$ sudo chown --from=root yesmin test.txt
$ ls -l test.txt
$ sudo chown --from=fahmida yesmin test.txt
$ ls -l test.txt
输出:
示例 5:将用户和组所有权从一个文件更改为另一个文件名
通过使用 –reference 选项,可以轻松地将一个文件或文件夹的所有权复制到另一个文件和文件夹。以下“chown”命令会将“test.txt”文件的用户和组所有权复制到“students.txt”文件。
$ ls -l students.txt
$ sudo chown --reference=test.txt students.txt
$ ls -l students.txt
输出:
示例 6:递归更改任何目录的用户或组所有权
以下带有 -R 选项的 chown 命令会将“code”文件夹下的所有文件和文件夹的用户所有权更改为“root”,并将组所有权更改为“testing”。
$ sudo chown -R root:testing code/
$ ls -l code
输出:
示例 7:列出 chown 对任何文件夹所做的所有更改
以下带有 -v 选项的 chown 命令将通过执行该命令显示所有权的所有更改的列表。
$ ls -l
输出:
结论
本教程将帮助 Linux 用户了解“chown”命令的使用,并正确应用该命令来更改任何文件或文件夹的所有权。