【发布时间】:2021-12-27 10:41:58
【问题描述】:
我正在编写一个基于 toml 配置文件的自动安装 archlinux 的 cli 工具...
目前我遇到了这个问题...一旦安装并配置了基本系统,接下来就是创建用户并设置用户密码。
通常使用 bash 会是这样的
passwd $user
这需要获取密码作为提示输入
New password:
我正在尝试制作这样的东西
use std::process::Command;
struct User {
....
username: String
pwd: String
}
...
fn set_pwd(self) -> Result<()> {
Command::new("chroot")
.arg("/mnt")
.arg("passwd")
.arg(self.username)
.spawn()
}
...
问题是我不明白如何将密码作为提示输入传递给 bash 进程
更新
这个问题https://stackoverflow.coam/questions/21615188/how-to-send-input-to-a-program-through-stdin-in-rust解决了类似的问题,但实现有点不同,因为它是一段时间前的标准库版本,但它是一个很好的基础
【问题讨论】:
-
该工具最初不与用户交互,用户将所有配置(包括用户信息)写入 toml 配置文件中......然后该工具使所有工作都与该信息一起工作
-
Arch Linux
useradd实用程序似乎支持使用-p选项设置密码。 -
useradd实用程序适用于我的目的,但我仍然有如何设置 root 密码的问题