如何修复Linux上的文件权限错误

286 阅读2分钟

如果你在两个用户之间通过网络或 "潜网 "共享文件(将文件保存到硬盘并复制到电脑上),当你试图读取或写入文件时,你可能会遇到权限错误。即使你了解文件权限的概念,你也可能不知道到底该如何诊断问题或解决问题。我曾经作为一项服务进行数据迁移,所以我遇到过我的权限错误和所有权冲突。下面是我如何快速解决它们的方法。

1.确定正确的用户

在你修复一个权限错误之前,你必须确定谁需要权限。你可能认为你已经知道了,但你可能没有意识到的是,用户名并不是用户身份最确定的属性。你的电脑并不把你看作一个人,而是把你看作一个数字。要了解你的号码,请看一下你的用户ID。

$ id --user
1005

2.获取当前的所有者

接下来,确定你无法互动的文件的所有者。因为发生了一个文件权限问题,你可能需要使用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

在这个例子中,拥有这些文件的用户被确定为用户ID1000,这就是为什么用户ID1005不能与它们进行交互。更糟糕的是,这些文件被标记为只有拥有它们的用户才可以读和写,所以甚至同一组的成员也不能与这些文件互动。

3.改变权限以匹配

你知道需要权限的用户,所以你可以改变当前的所有者以匹配你当前的用户。

$ sudo chown 1005 foo

你也可以通过改变文件模式来授予你的组员,可能还有系统上的其他用户对文件的访问权。例如,保持读写权限(7),同时授予该组和任何其他用户阅读权限(4)。

$ sudo chmod 744 foo