有人会说解决方法是前面加sudo,这确实是一种方法,但代价就是每次使用命令但时候前面都要加sudo,如果不加sudo就会提示无法找到命令或者是权限不足的问题,甚至如果你使用用户模式安装了一些包会出现匹配优先级的问题,举个例子
比如使用ROPgadget这个命令,如果用
sudo ROPgadget --version
会提示版本6.5
那么使用的版本6.5的ROPgadget的位置是什么呢?我们用命令:
sudo which ROPgadget
可以看到我们使用的是/usr/local/bin/ROPgadget这个ROPgadget文件
但如果我们使用
ROPgadget --version
不加sudo 会提示版本6.3 (原图找不到了,我P的呜呜~)
那么使用的版本6.3的ROPgadget的位置是什么呢?我们用命令:
which ROPgadget
可以看到我们使用的是/home/username/.local/bin/ROPgadget这个ROPgadget文件
注意,在用户模式下,将优先使用.local目录下的bin文件,在特权模式下会优先使用/usr/local/bin/下的文件/
简而言之我们是否使用sudo安装pip包会将这个包安装在不同的目录,所以遇到[Errno 13] Permission denied:的问题,首先的解决方法是加上–user参数而不是轻易用sudo安装。