在Google Compute Engine启动脚本上切换用户

时间:2019-04-03 03:46:32

标签: google-compute-engine

我将以下内容作为我的GCE启动脚本传递,但它始终以root用户身份登录,而从未以demo-user用户身份登录。我该如何解决?

    let startupScript = `#!/bin/bash
    su demo-user
    WHO_AM_I=$(whoami)
    echo WHO_AM_I: $WHO_AM_I &>> debug.txt
    cd..`

1 个答案:

答案 0 :(得分:0)

我认为它应该这样工作:

#! /bin/bash
sudo -u demo-user bash -c 'WHO_AM_I=$(whoami);
echo WHO_AM_I; $WHO_AM_I &>> debug.txt;'

使用“ sudo-u”来指定用户,然后使用bash -c和这些特定引号''之间并由;分隔的所有命令

例如:bash -c 'command1; command2;'

您可以尝试更简单的测试(对我有用),例如:

#! /bin/bash
sudo -u demo-user bash -c 'touch test.txt'

然后用ls -l /home/demo-test/text.txt检查演示测试是新文件的所有者。