You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在cloud-init配置中为非root用户执行Shell命令(以Rust工具链为例)

配置Cloud-Init实现用户登录即可使用Rust工具链

你的现有Cloud-Init配置已经完成了Rust工具链的全局安装,但由于使用了--no-modify-path参数且未配置用户会话的环境变量,用户首次登录时无法直接调用rustc、cargo等命令。以下是修改后的配置,确保用户登录即可直接使用Rust工具链:

#cloud-config
package_upgrade: true
packages:
- apt-transport-https
- build-essential
- cmake
runcmd:
- export RUSTUP_HOME=/opt/rust
- export CARGO_HOME=/opt/rust
# 安装Rust工具链,指定默认稳定版且不修改系统路径
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | bash -s -- -y --no-modify-path --default-toolchain stable --profile default
# 编写全局环境变量脚本,让所有用户登录时加载Rust路径
- echo 'export RUSTUP_HOME=/opt/rust' > /etc/profile.d/rust.sh
- echo 'export CARGO_HOME=/opt/rust' >> /etc/profile.d/rust.sh
- echo 'export PATH="$CARGO_HOME/bin:$PATH"' >> /etc/profile.d/rust.sh
- chmod +x /etc/profile.d/rust.sh
# 确保默认工具链配置生效(可选,安装时已指定--default-toolchain,此处为双重保障)
- /opt/rust/bin/rustup default stable

关键修改说明:

  • 全局环境变量配置:通过/etc/profile.d/rust.sh脚本,让所有用户登录时自动加载RUSTUP_HOME、CARGO_HOME并将Rust的bin目录加入PATH,无需用户手动配置。
  • 默认工具链确认:新增/opt/rust/bin/rustup default stable命令,确保默认工具链设置生效(即使安装过程中出现意外也能兜底)。

如果只需针对特定用户(比如默认的ubuntu用户)配置,可将全局脚本替换为修改用户的~/.bashrc:

# 替换runcmd中的环境变量脚本部分为以下内容
- echo 'export RUSTUP_HOME=/opt/rust' >> /home/ubuntu/.bashrc
- echo 'export CARGO_HOME=/opt/rust' >> /home/ubuntu/.bashrc
- echo 'export PATH="$CARGO_HOME/bin:$PATH"' >> /home/ubuntu/.bashrc
- chown ubuntu:ubuntu /home/ubuntu/.bashrc

内容的提问来源于stack exchange,提问作者Kai Walter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 12:45:41