aws cli、crontab 和用户权限之间的交互

问题描述 投票:0回答:1

我有一个 ec2,应该每 5 分钟同步到 s3,所以我在 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 安装它是否使我无法像 ubuntu 那样编辑配置?

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

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

谢谢,其中一些是常见的 Linux 问题...

linux ubuntu amazon-s3 cron aws-cli
1个回答
1
投票

当您执行

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

您需要运行

sudo -H aws configure
,以便在配置时具有
/root
主目录。然后你的
/usr/bin/aws
示例就可以工作了。

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

哦,回答你的问题:

1) AWS 没有什么特别的,都是因为你使用了

sudo
而没有使用
-H
,并且它把信用写到了错误的地方。

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

3) root 通常具有与普通用户不同的环境变量。例如,对于某些发行版,

/usr/local/bin
并不总是位于根路径中。最好养成指定完整路径的习惯。

© www.soinside.com 2019 - 2024. All rights reserved.