如何递归更改文件和文件夹的所有权

您可以在 Linux 中使用 chown 命令更改文件和目录的所有权。 使用起来非常简单。

chown owner_name file_or_folder

当您更改目录的所有权时,问题就来了,其内容保持不变。 解决方案也不太复杂。

要更改目录所有内容的所有权,您可以 将递归选项 -R 与 chown 命令一起使用:

chown -R owner_name folder_name

如果要递归更改所有者和组,可以通过以下方式使用它:

chown -R owner_name:group_name folder_name

让我们详细看看它,并看看如何递归地更改用户和组。 如果您熟悉文件所有权和权限的概念,事情就会更容易理解。

⚠️你需要root或使用 sudo 更改文件的所有权。

递归地 chown

要递归更改目录的所有权,请像这样使用它:

chown -R new_owner_name directory_name

如果您必须更改多个目录及其内容的所有权,您可以在同一行中执行此操作:

chown -R new_owner_name directory1 directory2 directory3

让我用一个样本来证明 example. 我有一个名为 new_dir 的目录,其中包含一些内容。 此目录及其内容归 root 用户所有。

[email protected]:~# ls -l /home/abhi/
total 4
drwxr-xr-x 3 root root 4096 May 30 07:30 new_dir
[email protected]:~# ls -l /home/abhi/new_dir/
total 20
-rw-r--r-- 1 root root 12813 May 30 07:30 new.txt
drwxr-xr-x 2 root root  4096 May 30 07:30 one_more_dir

当我更改 new_dir 的所有权时,它的所有权发生了变化:

[email protected]:~# chown abhi /home/abhi/new_dir
[email protected]:~# ls -l /home/abhi/
total 4
drwxr-xr-x 3 abhi root 4096 May 30 07:30 new_dir

但是里面的文件和文件夹仍然归root所有。

[email protected]:~# ls -l /home/abhi/new_dir/
total 20
-rw-r--r-- 1 root root 12813 May 30 07:30 new.txt
drwxr-xr-x 2 root root  4096 May 30 07:30 one_more_dir

现在,如果我将递归选项 -R 与 chown 命令一起使用,它会更改指定目录中所有内容的所有权,而不仅仅是目录。

[email protected]:~# chown -R abhi /home/abhi/new_dir
[email protected]:~# ls -l /home/abhi/new_dir/
total 20
-rw-r--r-- 1 abhi root 12813 May 30 07:30 new.txt
drwxr-xr-x 2 abhi root  4096 May 30 07:30 one_more_dir

递归更改所有者和组

chown 命令允许您更改所有者以及文件组。

要递归更改目录的所有者和组及其所有内容,请使用 chown 命令,如下所示:

chown -R user_name:group_name directory_name

您可以使用相同的方法更改多个文件夹的所有权:

chown -R user_name:group_name dir1 dir2

不会太难吧?

结论

最近,我将一个自托管的 Ghost 实例移到了一个新的服务器上 数字海洋的一键式部署。 我必须将整个图像文件夹从备份(在本地系统上下载)上传到新服务器。 系统需要将此图像文件夹的所有权从 root 更改为 ghost。

这种方法省去了我的麻烦。 我希望这个快速的小教程也能帮助你。

我强烈建议复习文件权限和所有权的基础知识。

这是您必须了解的基本 Linux 概念之一。