如何在 Linux 上使用 chown 命令如何在 Linux 上使用 chown 命令如何在 Linux 上使用 chown 命令如何在 Linux 上使用 chown 命令
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上使用 chown 命令

Linux 系统中的文件和目录都是属于某个人的。您可以使用 chown 命令更改它们的所有权。我们告诉你如何。

每个文件属于一个用户和一个组

Linux 是一个多用户系统。操作系统允许定义多个用户帐户,并允许任何有效用户登录到计算机。此外,多个用户可以同时使用一台计算机。

为了记录哪些文件属于哪个用户并加强某种安全性,Linux 使用所有权的概念。每个文件都属于一个所有者(一个用户)和一个组。

创建文件时,其所有者是创建它的用户。文件所属的组——“拥有”组——是用户的当前组。用户和组有名称,它们也有数字标识,称为用户(或唯一)标识符 (UID) 和组标识符 (GID)。

当你创建一个文件时,它就归你所有,并且属于你当前的组。通常,这是您已登录的组。默认情况下,这是一个与您的用户名同名的组,并且是在您作为系统用户创建时创建的。

您可以使用 chown 命令将所有权值更改为其他值。您可以同时设置新所有者、新组或新所有者和新组。文件的所有者可以更改组所有权,但只有 root 可以更改用户所有权,因为这涉及到另一个用户。没有 root 权限,您无法让系统上的其他用户无意中“采用”文件。

为什么要更改所有权?

以下是您可能想要执行此操作的一些情况示例:

  • 如果您在不同的 Linux 或类 Unix 操作系统之间传输文件,您需要将用户和组所有者更改为您希望在新 Linux 计算机上使用文件的帐户的新用户和组所有者。
  • 用户可能会离开您的组织,他的所有文件将由另一名员工负责。您需要将所有者和组所有者更改为现在负责这些文件的工作人员。
  • 您可以编写将由特定用户使用的脚本。
  • 您可以创建一个以根用户身份登录的文件或目录,但您希望特定用户可以访问它。

查看您的组、UID 和 GID

要列出您所在的组,您可以使用 groups 命令。

groups

要获取组列表、它们的数字 ID 以及您的 UID 和 GID,请使用 id 命令:

id

您可以使用一些带有 ID 的选项来优化输出。

  • -u:列出您的 UID。
  • -g:列出您的有效(当前)GID。
  • -nu:列出您的用户名。
  • -ng:列出您当前的组名。

id -u
id -g
id -nu
id -ng

查看文件的用户和组所有权

要查看文件或目录的所有者,请使用 -l(长列表)选项和 ls。

ls -l

我们可以看到名称 dave 在列表中出现了两次。最左边的外观告诉我们文件所有者是一个名为 dave 的用户。最右边的 dave 告诉我们该文件属于一个也称为 dave 的组。

默认情况下,当创建 Linux 用户时,他们会被添加到以其用户名命名的私有组中。他们是该组的唯一成员。

此可执行文件归用户 mary 所有,文件所属的组是 marys 私有组。

ls -l

该文件归用户 oscar 所有,但该文件所属的组称为 researchlab 。这意味着 researchlab 组的其他成员可以根据为该组成员设置的文件权限访问该文件。

更改用户所有权

让我们来看一些例子。此命令会将文件 while.c 的用户所有权更改为用户 mary。

sudo chown mary while.c

我们可以使用 ls 查看文件属性的变化。

ls -l while.c

您可以使用 chown 一次更改多个文件的所有权。

sudo chown mary getval.c global.c goto.c

这会更改所有三个文件的用户所有权。

ls -l getval.c global.c goto.c

您可以使用通配符来选择文件组。此命令将更改所有以字母“c”开头的文件的用户所有权。

sudo chown mary c*.*

现在,所有文件的所有者都是 mary。请注意,所有组所有权均未更改。

ls -l mary c*.*

让我们更改目录的所有权。我们只是将目录名而不是文件名传递给 chown。

sudo chown mary ./archive/

要检查目录的所有权属性,我们使用 ls,但也可以使用 -d(目录)选项。这列出了目录的属性,而不是其中的文件。

ls -l -d ./archive/

要更改目录中所有文件的所有权,可以使用 -R(递归)选项。此选项将更改 archive 文件夹中所有文件的用户所有权。

sudo chown -R mary ./archive/

现在让我们看看存档目录中的文件。

ls -l ./archive/

正如预期的那样,所有文件现在都属于 mary。

更改组所有权

有多种方法可以更改组所有权。

要在更改用户所有权的同时更改组所有权,请传递新所有者名称和新组名称,并用冒号“:”分隔它们。该组必须已经存在。

sudo chown mary:researchlab charm.c

用户所有者和文件所属的组都已更改。

ls -l charm.c

将组所有权更改为新所有者的当前组的简写方法,只需提供冒号并省略组名。

sudo chown mary: caps.c
ls -l caps.c

用户所有权和组所有权都已更改为 mary。

要仅更改组所有权,请在其前面加上冒号并省略用户名。用户所有者不会被更改。

sudo chown :researchlab at.c
ls -l at.c

组所有权已更改,但用户所有权保持不变。

将 chown 与 UID 和 GID 值一起使用

您可以通过 chown 命令使用数字 UID 和 GID 值。此命令会将用户和组所有权设置为 mary。

sudo chown 1001:1001 at.c
ls -l at.c

占有是法律的十分之九

或者他们说。但在 Linux 中,所有权是文件安全的重要组成部分,文件权限提供其余部分。使用 chown 和 chmod 命令来保护系统上的文件访问。

Linux Commands
Files tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc
Processes alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
Networking netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

RELATED: Best Linux Laptops for Developers and Enthusiasts

©2015-2025 艾丽卡 support@alaica.com