加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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 […].

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读