我运行命令sudo hadoop fs -ls /
,它说没有找到 hadoop 命令。但我已经设置了它/etc/profile
,并且我也通过切换到 root 用户来验证它。
这里发生了什么?
答案1
您可能需要为 sudo 创建一个 sudoers.d 文件来永久保存您的环境变量。
警告!此方法使用 sudoers 文件,如果出现任何问题,您可能会被 sudo 锁定。请谨慎操作。
cd ~/Desktop
touch 'myfile'
- 在编辑器中打开该文件。
添加以下行(下面提到的两个空行都非常重要):
<This must be a blank line> Defaults env_keep += "your_variable_name_within_quotes" <This must be a blank line>
sudo chmod 440 'myfile'
sudo mv 'myfile' '/etc/sudoers.d/myfile'
- 现在打开:
'/etc/sudoers'
并确保有以下行:#includedir /etc/sudoers.d
- 如果没有的话,不要编辑它,而是
sudo visudo
- 将该行附加到末尾并按Ctrl+X保存。
- 重新启动并尝试使用该环境变量执行 sudo 命令。
答案2
cron 使用自己的默认 PATH,类似于/bin:/usr/bin
。请参阅cron(8)和crontab(5)手册页。