gpt4 book ai didi

ubuntu - 在初始化脚本中切换用户?

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:03 25 4
gpt4 key购买 nike

这是我在 Ubuntu 工作站上的初始化脚本。我需要以 root 以外的其他用户身份运行命令,但我无法理解应该如何完成。 sudo -usu newuser 似乎都不起作用。

脚本:

respawn
console none

start on runlevel [2345]
stop on runlevel [06]

script
su "anotherUser" -c ./myCommand
end script

最佳答案

我用这个:

su -l $MUSER -c "myCommand args..."

更新:既然有人对这个答案感兴趣,我在这里解释一下我的使用方式。

我们以普通 linux 用户而不是 root 身份运行服务器。用户名包含三部分:

服务、客户、舞台

这样我们就可以在一个 Linux 操作系统中为多个客户运行多项服务。

示例:foo_bar_p 客户“bar”的服务“foo”,“p”表示生产

这是初始化脚本的一部分。初始化脚本可以以 root 或 foo_bar_p 用户身份执行:

# /etc/init.d/foo_bar_p-celeryd
# scriptname contains linux username
SCRIPT_NAME=`basename "$0"`
SYSTEM=${SCRIPT_NAME%*-celeryd}

U=`id -nu`

if [ ! $U == $SYSTEM ]; then
if [ $U == "root" ]; then
# use "-l (login)" to delete the environment variables of the calling shell.
exec su -l $SYSTEM -c "$0 $@"
fi
echo "Script must be run from $SYSTEM or root. You are '$U'"
rc_exit 1
fi

# OK, now I am foo_bar_p
cd
. $HOME/.bashrc
....

关于ubuntu - 在初始化脚本中切换用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com