【问题标题】:Interaction between aws cli, crontab and user privilegesaws cli、crontab 和用户权限之间的交互
【发布时间】:2019-01-11 21:03:44
【问题描述】:

我有一个应该每 5 分钟同步到 s3 的 ec2,所以我在 sudo 下安装了 awscli,在使用 aws configure 时输入了我的凭据。然后,我在 /home/ubuntu/ 创建了一个 shell 脚本,其中包含以下条目:

 aws s3 cp s3://datasets/B3 /home/ubuntu/data/B3 --recursive

在 sudo crontab 中:

*/5 * * * * /home/ubuntu/s3syncer.sh

但它不同步。我之前遇到过这个问题,所以我尝试了:

/home/ubuntu/.aws aws s3 cp s3://datasets/B3 /home/ubuntu/data/B3 --recursive
/usr/bin/aws aws s3 cp s3://datasets/B3 /home/ubuntu/data/B3 --recursive

似乎 /usr/bin/aws 现在正在工作.... 此外,当我以 ubuntu 用户身份尝试“aws configure”时,它显示权限不正确。

  1. 如何确定编辑 aws configure 的权限?是否使用 sudo 安装它,所以我无法编辑 configure as ubuntu?

  2. /usr/bin/aws 如何改变 aws s3 同步的执行?

  3. 从 sudo v ubuntu crontab 执行的命令有何不同?

谢谢,这些是一般的 linux 问题...

【问题讨论】:

标签: linux ubuntu amazon-s3 cron aws-cli


【解决方案1】:

当您执行sudo aws configure 时,它并没有更改您的$HOME 目录。因此,它将您的凭据存储在“错误”的位置(/home/ubuntu 而不是/root),并且您无法从 ubuntu 用户那里获取它们。

您需要运行sudo -H aws configure,以便在配置时拥有/root 主目录。然后你的/usr/bin/aws 例子就可以工作了。

您可能还想删除 ubuntu 主目录中的 root 拥有的凭据。

哦,回答你的问题:

1) AWS 没有什么特别之处,都是因为你用了sudo 没有-H,它把creds写错了地方。

2) 我不确定这个问题在问什么?

3) Root 通常拥有与普通用户不同的环境变量。例如,/usr/local/bin 并不总是在某些发行版的根路径中。最好养成指定完整路径的习惯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 2015-04-03
    • 2022-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-19
    相关资源
    最近更新 更多