了解并解决 Linux 上的文件所有权问题:“不允许操作”

您所在的位置:网站首页 无法更改文件夹所有者 了解并解决 Linux 上的文件所有权问题:“不允许操作”

了解并解决 Linux 上的文件所有权问题:“不允许操作”

2024-07-11 01:07| 来源: 网络整理| 查看: 265

了解并解决 Linux 上的文件所有权问题:“不允许操作”

当尝试在 Linux 系统上更改文件的所有权时,如果操作失败,您可能会遇到不允许操作错误。这种一般错误并不能让我们深入了解问题可能是什么,因此我们必须进行一些挖掘以找出发生错误的原因。在本教程中,我们将完成一些故障排除步骤,以确定在尝试使用 chown Linux 命令更改文件所有权时发生此错误的原因。

在本教程中您将学习:

如何使用 sudo 更改文件的所有权如何挂载具有所有权设置的文件系统如何更改文件扩展属性中的不可变标志

解决 Linux 中的“不允许操作”错误

Linux 系统上的多种情况下都可能出现不允许操作错误。但我们正在特别研究为什么每当尝试使用 chown 命令更改文件的所有权时都会发生此错误。

例如:

$ chown linuxconfig: example_file.txt chown: changing ownership of 'example_file.txt': Operation not permitted

您知道吗?Operation not allowed 错误听起来与 Permission Denied 错误类似,但这两个错误实际上是由不同的东西。权限被拒绝错误通常表示缺乏必要的文件权限,而前者意味着根本无法执行操作。

让我们看一下以下几个不同的原因,了解为什么在使用 chown Linux 命令时可能会出现 Operation not allowed 错误:

权限不足

导致此错误的最常见原因是您的用户帐户可能没有足够的权限来委派相关文件的所有权。如果您想更改文件的所有权,那么您的用户帐户必须已经是所有者。否则,只有 root 帐户才能更改文件的所有权。

在这种情况下,我们只需在 chown 命令前添加 sudo 即可成功更改文件的所有权:

$ sudo chown linuxconfig: example_file.txt

还是行不通?尝试下面的其他解决方案之一。

文件系统不支持Linux权限

如果您正在使用不支持 Linux 文件权限的文件系统(除 ext3、ext4 等之外的文件系统),那么在尝试更改文件所有权时您将遇到 Operation not allowed 错误 -即使使用 root 帐户也是如此。 exFAT 等文件系统默认不支持文件权限。

在这种情况下,解决方案是使用 uid=1000,gid=1000 选项挂载文件系统,以便文件系统上的所有文件都归当前用户帐户和组所有。

$ sudo mount -t exfat -o uid=1000,gid=1000 /dev/sdX1 /mount/point

您需要调整上述命令以满足您的需求(输入正确的文件系统类型、设备路径和安装点),但想法是使用 -o uid=1000,gid=1000mount 命令中的 选项将允许您在安装文件系统后获得文件系统上所有文件的所有权。

文件在扩展属性中设置了不可变标志

另一种可能出现讨厌的“不允许操作”错误的情况是在文件扩展属性中设置了不可变标志。如果设置了此标志,则您将无法使用 chown 命令更改文件的所有权。

按照以下步骤更改文件上的不可变标志:

首先,为了举例,让我们看看如何打开不可变标志:

$ sudo chattr +i example_file.txt

我们可以使用 lsattr 命令检查文件的扩展属性:

$ lsattr example_file.txt ----i--------e-- example_file.txt

上面输出中的 i 表示不可变标志已打开,这意味着即使使用 root 帐户,也无法更改文件的所有者。让我们检查一下以确保:

$ sudo chown linuxconfig:linuxconfig example_file.txt chown: changing ownership of 'example_file.txt': Operation not permitted

为了解决这个问题,我们可以通过执行以下命令来禁用不可变标志:

$ sudo chattr -i example_file.txt

我们再检查一下文件的扩展属性:

$ lsattr example_file.txt -------------e-- example_file.txt

很好,可以走了。我们现在可以使用 chown 命令成功更改文件的所有权:

$ sudo chown linuxconfig:linuxconfig example_file.txt 结束语

在本教程中,我们了解了如何解决 Linux 系统上的不允许操作错误。我们经历了在 Linux 中尝试使用 chown 命令更改文件所有权时可能发生此错误的各种场景。这并不是一个详尽的列表,特别是因为该错误相当普遍,但上述问题通常是发生错误的主要原因。希望这可以帮助您纠正错误。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3