一些命令在普通权限下可以执行,但是换到root权限不可执行。
原因如下:
- 用户执行sudo命令时,系统会主动寻找
/etc/sudoers
文件,判断该用户是否有执行sudo的权限 - 若可执行,让用户输入密码确认
- 密码输入成功后,开始执行sudo后续的命令
我们先来查看docker-compose的文件路径,如下图所示。
然后查看/etc/sudoers
文件中secure_path的路径,如下图所示。
若docker-compose不在该路径中,我们需要将其复制到sudo的路径下。
执行命令sudo cp -r /usr/local/bin/docker-compose /usr/bin/docker-compose
。
完成之后又遇到另一个问题,如下所示。
报错为/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.25.8) or chardet (5.0.0) doesn't match a supported version! warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
查阅之后,发现是因为urllib3和chardet版本不匹配。
执行命令sudo pip3 list
,查看其版本,如下图所示。
我们重新安装并升级requests模块,之后问题即可得到解决,其卸载和安装命令如下。
sudo pip3 uninstall urllib3 chardet
sudo pip3 install --upgrade requests
问题解决,如下图所示。