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 |
其他用户权限:读、执行 |