我有一个在 Ubuntu 上运行的本地虚拟机,在启动时,我需要运行两个命令(作为我的用户andreas
):
sudo mount -a
docker-compose up -d
最后一个命令在我的主目录中运行,不能以 root 身份运行,否则 docker 会让我伤心。如何在机器加载时自动运行这两个命令,一个以 root 身份,一个以我身份运行?
谢谢
答案1
以 root 身份运行脚本,并使用sudo
的选项以您的用户身份-u
运行,并使用该选项确保它在登录 shell 中运行(即与您登录时所拥有的环境相同[1])。例如docker-compose
-l
#!/bin/sh
mount -a
sudo -l -u yourusername docker compose up -d
或者,使用su
:
#!/bin/sh
mount -a
su -l yourusername docker compose up -d
[1] 与 X 或 GUI 桌面环境有关的任何内容除外。