您可以在 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 概念之一。