我有一个Linode(Ubuntu 16.04),我试图通过调用脚本的cron作业将文件复制到AWS S3存储桶,但日志输出: upload failed: ../path/file.ext to s3://bucket/prefix/file.ext Unable to locate credentials
脚本tar目录,然后将该tar上传到我的s3存储桶
sudo直接调用它,脚本工作就开始了 tar工作,但aws上传不(如上所述错误) tar失败(有意的权限相关),但是aws上传成功。 /usr/local/bin/aws调用/usr/local/bin/aws /usr/local/bin/aws到crontab中的PATH以及我的脚本中 AWS_CONFIG_FILE="/home/[user]/.aws/config"添加AWS_CONFIG_FILE="/home/[user]/.aws/config"以及在我的脚本中 aws configure PATH包括我的env.interactive PATH列出的所有东西,再加上几个,甚至一些重复的东西 – 是不是很糟糕? 与我的env.cron (36行)相比,在我的env.interactive (1810行)中有更多的语句。 这一定是我的环境差异,对吧? 我已经search了我的env.interactive任何aws实例,但是没有,即使env工作得很好。 有关其他特定项目的任何提示在那里寻找?
任何想法和帮助表示赞赏! 谢谢!
如果你想使用sudo来运行一个特定的命令,并且configuration从它的主目录而不是你自己的目录中读取,那么你已经用sudo -H -u user ...来运行sudo来把HOMEvariables更新为称为用户自动。
在这种情况下,将暗示AWS_CONFIG_FILE的有效值,AWS_CREDENTIALS将自动生成。
我从/home/[user/ to /root/复制了.aws目录,似乎解决了这个问题。
围绕configuration文件被复制到根文件夹是否有任何安全/其他问题?