修复 Linux 上的文件权限错误
不要让文件权限减慢您的速度。以下是如何在 Linux 和 macOS 上管理它们。
如果您通过网络或“sneaker net”在两个用户之间共享文件(将文件保存到硬盘并将其复制到计算机),则在尝试读取或写入该文件时可能会遇到权限错误。即使您了解文件权限的概念,您也可能不知道如何准确诊断问题或解决问题。我曾经将数据迁移作为服务来执行,因此我遇到了相当多的权限错误和所有权冲突。这是我如何快速修复它们的方法。
1.确定正确的用户
在修复权限错误之前,您必须确定谁需要权限。您可能认为您已经知道这一点,但您可能没有意识到用户名称并不是用户身份的最明确属性。您的计算机并不将您视为一个人,而是将您视为一个数字。要了解您的号码,请查看您的用户 ID:
$ id --user
10052. 获取当前所有者
接下来,确定您无法与之交互的文件的所有者。由于发生文件权限问题,您可能需要使用 sudo 命令来查看有关文件的信息:
$ sudo ls --numeric-uid-gid
-rw------- 1 1000 100 23041 Aug 2 05:26 bar
-rw------- 1 1000 100 54281 Aug 2 04:58 baz
-rw------- 1 1000 100 822 Aug 2 08:19 foo在此示例中,拥有这些文件的用户被标识为用户 ID 1000,这就是用户 ID 1005 无法与他们交互的原因。更糟糕的是,这些文件被标记为只有拥有它们的用户可读和可写,因此即使是同一组的成员也无法与这些文件进行交互。
3.更改权限以匹配
您知道需要权限的用户,因此您可以更改当前所有者以匹配您当前的用户:
$ sudo chown 1005 foo您还可以通过更改文件模式来授予组成员(可能还有系统上的其他用户)对文件的访问权限。例如,要维护读写权限 (7),同时向组和任何其他用户授予读取权限 (4):
$ sudo chmod 744 foo了解更多
当您对文件权限不满意时,文件权限可能会显得很棘手。有关文件所有权如何工作的更多信息,请阅读 chown 简介。有关文件权限如何工作的更多信息,请阅读 chmod 简介。
