安卓系统

Linux中的Chown命令(文件所有权)

Linux(Ubuntu)安装破解Navicat 15创建快捷启动菜单/Install and crack Navica15 on Linux create a desktop launcher

Linux(Ubuntu)安装破解Navicat 15创建快捷启动菜单/Install and crack Navica15 on Linux create a desktop launcher

目录:

Anonim

chown 命令允许您更改给定文件,目录或符号链接的用户和/或组所有权。

在Linux中,所有文件都与一个所有者和一个组相关联,并为文件所有者,组成员和其他人分配了权限访问权限。

在本教程中,我们将通过实际示例向您展示如何使用 chown 命令。

如何使用 chown

在开始使用 chown 命令之前,让我们先回顾一下基本语法。

chown 命令表达式采用以下形式:

chown USER FILE(s)

USER 是新所有者的用户名或用户ID(UID)。 GROUP 是新组的名称或组ID(GID)。 FILE(s) 是一个或多个文件,目录或链接的名称。 数字ID应该以 + 符号为前缀。

  • USER 如果仅指定用户,则指定的用户将成为给定文件的所有者,组所有权不会更改。 USER: -当用户名后跟冒号 : ,并且未提供组名时,用户将成为文件的所有者,并且文件组的所有权更改为用户的登录组。 USER:GROUP 如果同时指定了用户和组(在它们之间没有空格),则文件的用户所有权更改为给定的用户,而组所有权更改为给定的组。 :GROUP 如果省略了User,并且该组以冒号 : 开头,则只有文件的组所有权更改为给定的组。 : 如果仅给出冒号 : ,但未指定用户和组,则不会进行任何更改。

默认情况下,成功时 chown 不会产生任何输出并返回零。

使用 ls -l 命令来查找谁拥有文件或文件所属的组:

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | +-----------> Group +-------------------> Owner

只有root用户或具有 sudo 特权的用户才能更改文件的组所有权。

如何更改文件的所有者

要更改文件的所有者,请使用 chown 命令,后跟新所有者的用户名和目标文件作为参数:

chown USER FILE

例如,以下命令会将名为 file1 的文件的所有权更改为名为 linuxize 的新所有者:

chown linuxize file1

要更改多个文件或目录的所有权,请将它们指定为以空格分隔的列表。 下面的命令将名为 file1 和目录 dir1 的文件的所有权更改为名为 linuxize 的新所有者:

chown linuxize file1 dir1

可以使用数字用户ID(UID)代替用户名。 以下示例将名为 file2 的文件的所有权更改为UID为 1000 的新所有者:

chown 1000 file2

如果数字所有者作为用户名存在,则所有权将转移到用户名。 为避免此前缀,ID带有 +

chown 1000 file2

如何更改文件的所有者和组

要更改文件的所有者和组,请使用 chown 命令,后跟新的所有者和组,并用冒号(:)分隔,中间没有空格和目标文件。

chown USER:GROUP FILE

以下命令会将名为 file1 的文件的所有权更改为名为 linuxize 和group users 的新所有者:

chown linuxize:users file1

如果在冒号(:)后省略组名,则文件组将更改为指定用户的登录组:

chown linuxize: file1

如何更改文件组

要仅更改文件组,请使用 chown 命令,后跟冒号( chown 和新的组名(它们之间没有空格)和目标文件作为参数:

chown:GROUP FILE

以下命令会将名为 file1 的文件的拥有组更改为 www-data

chown:www-data file1

可以用来更改文件组所有权的另一个命令是 chgrp

如何更改符号链接的所有权

当不使用递归选项时, chown 命令更改符号链接指向的文件的组所有权,而不是符号链接本身。

例如,如果尝试更改所有者和指向 /var/www/file1 的符号链接 symlink1 的组, chown 将更改符号链接指向的文件或目录的所有权:

chown www-data: symlink1

很有可能您会收到“无法取消引用'symlink1':权限被拒绝”错误,而不是更改目标所有权。

发生该错误是因为默认情况下,大多数Linux发行版上的符号链接均受保护,并且您无法对目标文件进行操作。 该选项在 /proc/sys/fs/protected_symlinks 1 表示启用, 0 禁用。 我们建议不要禁用符号链接保护。

要更改符号链接本身的组所有权,请使用 -h 选项:

chown -h www-data symlink1

如何递归更改文件所有权

要对给定目录下的所有文件和目录进行递归操作,请使用 -R (-- --recursive )选项:

chown -R USER:GROUP DIRECTORY

以下示例将 /var/www 目录下所有文件和子目录的所有权更改为名为 www-data 的新所有者和组:

chown -R www-data: /var/www

如果目录包含符号链接,请通过 -h 选项:

chown -hR www-data: /var/www

递归更改目录所有权时可以使用的其他选项是 -H -L

如果传递给 chown 命令的参数是指向目录的符号链接,则 -H 选项将导致命令遍历该目录。 -L 告诉 chown 遍历每个符号链接到遇到的目录。 通常,不应使用这些选项,因为这可能会导致系统混乱或带来安全风险。

使用参考文件

使用 --reference=ref_file 选项,可以将给定文件的用户和组所有权更改为与指定参考文件( ref_file )相同。 如果参考文件是符号链接, chown 将使用目标文件的用户和组。

chown --reference=REF_FILE FILE

例如,以下命令会将 file1 的用户和组所有权分配给 file2

chown --reference=file1 file2

结论

chown 是Linux / UNIX命令行实用程序,用于更改文件的用户和/或组所有权。

要了解有关 chown 命令的更多信息,请访问chown手册页或在终端中键入 man chown

船首码头