修复 Linux 上的“权限被拒绝”错误
如果您在 Linux 系统上收到 Permission Denied
错误,通常意味着您的用户帐户对您尝试与之交互的文件或目录没有适当的权限。 Linux 文件系统中的所有文件和目录都附加有用户和组权限,这些权限委托读取、写入或执行文件的访问权限。这些权限相互独立,因此您能够打开文件并不意味着您可以编辑它。
在本教程中,我们将展示如何修复 Linux 上的Permission Denied
错误。这些方法涉及对文件的基本权限更改,或提升到受保护文档的 root 帐户。请跟随我们下面开始编辑文件权限并修复错误。
在本教程中您将学习:
如何查看文件权限和所有者
如何更改文件的读、写或执行权限
如何更改文件的所有者或组
如何使用root账户绕过权限限制
修复 Linux 上的“权限被拒绝”错误 – 分步说明
Permission Denied
错误可能发生在文件和目录上。当我们尝试执行我们的用户帐户没有可执行权限的脚本时,情况如下:
请按照以下分步说明修复Permission Denied
错误:
首先,我们使用 ls -l 命令检查文件的权限。这将显示任何文件或目录的所有者、组和权限信息。将文件或目录的路径指定为参数:
$ ls -l example.sh -rw-rw-r-- 1 linuxconfig linuxconfig 32 Jan 28 17:15 example.sh
输出显示所有者和组拥有读、写权限,其他用户拥有读权限。如您所见,我们对该文件没有执行权限,这就是我们在尝试执行该文件时收到错误的原因。
解决该问题最简单、最快的方法是使用 chmod 命令添加我们所需的适当权限:
添加读取权限:
$ chmod +r example.sh
添加写入权限:
$ chmod +w example.sh
添加执行权限:
$ chmod +x example.sh
添加所有权限:
$ chmod +rwx example.sh
警告
建议您仅向每个文件添加必要的权限。人们很容易将 rwx 权限简单地分配给您计划使用的任何文件,但文件权限是一项安全功能,应该只授予真正需要它的用户或组。或者,您可以在适当的时候获得该文件的所有权。这通常会为您提供比其他用户更多的权限,但您也可以随时选择在适当的情况下编辑权限。此命令将使用 chown 命令将文件的所有者更改为用户 linuxconfig。
$ chown linuxconfig example.sh
如果您尝试读取、编辑或执行系统文件(不是普通文档),那么建议您使用 root 帐户而不是更改文件权限。更改系统文件或应用程序配置文件的文件权限可能会产生不良副作用。例如,如果您需要使用 nano 编辑系统文件,只需在命令前面加上 sudo 即可:
$ sudo nano /path/to/config
或者,提升到 root 帐户并使用以下 Linux 命令打开、编辑或执行您需要权限的文件:
$ su - # nano /path/to/config
请记住,您还可以更改目录的权限。如果您发现无法在某个路径下创建任何新文件,可能是因为您对该目录没有写权限。这可以通过 chmod 来修复:
$ chmod +w /path/to/dir
或者通过在命令中添加
-R
选项来递归地编辑所有文件的权限:$ chmod -R +w /path/to/dir
还可以使用绝对模式(由数字表示的权限)而不是符号模式(由rwx表示的权限)。一些例子:
为文件所有者授予完全权限(读、写、执行),并为所有其他用户授予读权限:
$ chmod 744 file-name
为每个用户授予完全权限(读、写、执行):
$ chmod 777 file-name
结束语
在本教程中,我们了解了如何修复 Linux 系统上的Permission Denied
错误。正如所讨论的,此错误是由于缺少读取、写入或执行文件或目录内容所需的权限而导致的。解决此问题的方法是使用 chmod 命令更改文件权限、使用 chown 命令获取所有权或通过 sudo 使用管理员权限命令。无论配置如何,根用户帐户始终对任何文件拥有完全权限。