我正在尝试设置亚马逊的EC2服务并遇到一些麻烦。
我已下载了Amazon EC2 API Tools,我已将其放在文件夹~/.ec2
中以及我的.cert
和.pem
文件中。
当我尝试~/.ec2/bin
的任何命令时,我收到错误/Users/zmjones/.ec2/bin/ec2-cmd: /usr/bin/env: bad interpreter: Operation not permitted
。我在"/usr/bin/env bad interpreter"中询问了这个问题。
现在我已经使用此mv /users/zmjones/.ec2/bin/ec2-add-keypair /users/zmjones/.ec2/bin/ec2-add-keypair.bak
tr -d '\r' < /users/zmjones/.ec2/bin/ec2-add-keypair.bak > /users/zmjones/.ec2/bin/ec2-add-keypair
的变体删除了DOS行尾,我试图执行~/.ec2/bin
中的一些命令并且无法使其工作。
我收到了一个权限被拒绝错误,当我使用sudo时,告诉我环境变量EC2_HOME
不存在,而echo $EC2_HOME
表示它确实存在。这是我的~/.bash_profile
。
PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:$PATH
PATH=/opt/local/sbin:/usr/local/bin:/usr/x11/bin:/usr/texbin:$PATH
PATH=/usr/local/texlive/2011/bin/x86_64-darwin:$PATH
PATH=/Library/Frameworks/EPD64.framework/Versions/Current/bin:$PATH
EC2_HOME=~/.ec2
PATH=$EC2_HOME/bin:$PATH
EC2_PRIVATE_KEY=`ls $EC2_HOME/pk-*.pem`
EC2_CERT=`ls $EC2_HOME/cert-*.pem`
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/
export PATH
答案 0 :(得分:2)
您收到“权限被拒绝”错误,因为未在修改后的脚本上设置执行(+ x)位。
sudo
来解决此问题。只需设置+ x位:
chmod +x /users/zmjones/.ec2/bin/ec2-add-keypair
(对于具有固定行结尾的其他脚本也是如此)。
sudo
无效的原因是默认情况下,它以干净的环境开始,没有EC2_HOME
和其他环境变量。
您不希望使用sudo
来解决问题的原因是,使用sudo
运行以root身份运行整个程序,这有可能在你的系统上做坏事。至少,它可能会在本地目录中创建由root
拥有的文件或子目录,然后您必须采取额外的步骤来修改/删除。在最坏的情况下,程序中的错误可能会消灭整个系统或其中的重要部分。
答案 1 :(得分:0)
如果ls -al@
显示com.apple.quarantine extended attrib
,则不会执行这些文件。你需要
xattr -d com.apple.quarantine filename