Permission denied 是在使用 Linux、macOS 或其他类 Unix 系统时经常出现的错误提示,意思是 “权限被拒绝”。这通常表示你尝试执行某个操作,但当前用户对目标资源没有足够的权限。

如果你使用的是Windows系统,则以管理员权限执行操作即可;

常见原因

原因 说明
文件没有执行权限 如程序、脚本文件没有可执行权限
没有读/写权限 当前用户对文件或目录没有读/写权限
尝试访问系统资源 非 root 用户尝试操作 root 专属资源

解决方法

1. 使用root权限来执行命令,比如删除某个文件:

sudo rm filename.txt

执行系统操作:

sudo apt update

2. 改变文件的权限,例如为文件添加可执行权限:

chmod +w pythonscript.py

修改文件的权限需要你是该文件的所有者或者是root用户;

或者让所有用户可读、写、执行:

chmod 777 filename

3. 改变文件的所有者:

sudo chown 用户名:用户组 文件名

示例,将文件所有者改为当前用户:

sudo chown $(whoami):$(whoami) example.txt

Linux 权限

在 Linux 系统中,文件存在读、写、执行权限;

  • 读取权限(r):允许查看文件内容或列出目录内容
  • 写入权限(w):允许修改文件内容或向目录中添加/删除文件
  • 执行权限(x):允许执行文件或进入目录

Linux 中的权限针对三类用户:

root用户可以执行一切操作;

  • Owner(所有者):文件的创建者或拥有者
  • Group(用户组):与所有者属于同一用户组的其他用户
  • Others(其他用户):系统中所有其他用户

可使用ls -l命令查看文件或目录的权限、所有者、用户组:

ls -l filename
drwxr-xr-x 1 hocn group 4096 Feb  6  2022 filename

其中,hocn表示文件的所有者,group表示所在的用户组;

drwxr-xr-x(共 10 个字符)表示了文件的类型以及三类用户的权限:

字符位 含义
第1位d 文件类型,-表示普通文件,d表示目录;存在其他类型。
2~4位rwx 文件所有者的权限:读、写、执行
5~7位r-x 用户组权限:读、执行
8~10位r-x 其他用户权限:读、执行