bash – 如何在AWS Cloud Formation启动时以不同的用户身份运行
发布时间:2020-12-15 22:01:27 所属栏目:安全 来源:网络整理
导读:我在启动AWS Ubuntu实例(来自Cloud Formation模板)并在启动时成功运行脚本时遇到了很多麻烦.这个脚本确实运行,但我不希望它以root身份运行.我希望脚本可以作为不同的用户调用,也可以在脚本运行时让脚本更改用户. 由于我们正在尝试使用Cloud Formation,因此我
我在启动AWS Ubuntu实例(来自Cloud Formation模板)并在启动时成功运行脚本时遇到了很多麻烦.这个脚本确实运行,但我不希望它以root身份运行.我希望脚本可以作为不同的用户调用,也可以在脚本运行时让脚本更改用户.
由于我们正在尝试使用Cloud Formation,因此我需要将脚本或脚本的引用放在我的模板文件中.我的模板文件的相关部分如下.脚本’myScript.sh’确实运行,但始终以root身份运行. "MyImage" : { "Type" : "AWS::EC2::Instance","Properties" : { "ImageId" : "xxxxxx","KeyName" : "xxxxxx","SecurityGroups" : [ "xxxxxx" ],"UserData" : {"Fn::Base64" : {"Fn::Join" : ["",[ "#includen","https://s3-eu-west-1.amazonaws.com/aFolder/myScript.sh n" ] ] } } } } }, 从URL:http://alestic.com/2009/06/ec2-user-data-scripts它声明这些脚本始终以root身份运行.所以我决定修改脚本来改变用户.下面是一个不能满足我想要的示例脚本.我已经内联评论它来解释每个阶段的作用: #!/bin/bash whoami > /home/ubuntu/who1.txt # Always returns 'root' su ubuntu # Appears to have no effect. Ubuntu user does exist whoami > /home/ubuntu/who2.txt # Always returns 'root' su ubuntu echo fish > /home/ubuntu/aFile.txt # File is not created sudo -u ubuntu bash # Appears to have no effect whoami > /home/ubuntu/who3.txt # Always returns 'root' 我猜我的脚本有一些根本性的错误,但我看不到它!有没有人有过AWS和Cloud Formation的经验,你是否成功地以root身份运行脚本?我真的不希望脚本以root身份运行,因为要启动的活动不应该在根级别拥有. 谢谢, 解决方法
su不会为脚本的其余部分更改用户,它会为您指定的用户启动一个新的交互式shell.在像这里的脚本这样的非交互式上下文中,该shell会立即退出,因为它没有任何内容可以执行.
有关如何更改一系列命令的用户的一些建议,请参阅this question.或者对于单个命令,您可以执行sudo -u ubuntu […]. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |