gpt4 book ai didi

linux - 如何在没有用户交互的情况下创建用户和设置密码?

转载 作者:太空狗 更新时间:2023-10-29 12:39:09 25 4
gpt4 key购买 nike

我最近在做一个名为:arch loop 的项目,它是 Arch Linux 的自动安装程序。我看过一些安装程序和脚本来简化 Arch 安装,但我每天安装 Arch Linux 超过 3 次,所以遵循 Arch-way 需要很长时间并且不断需要用户交互。

问题:

密码是,非root用户的信息是自己创建的,在合适的时候,我们将使用以下命令:

arch-chroot /mnt useradd -m -g users -G wheel -s /usr/bin/bash archuser
arch-chroot /mnt bash -c "echo -e 'password\npassword\n' | passwd
arch-chroot /mnt bash -c "echo -e 'rootpassword\nrootpassword\n' | passwd root

将密码发送到 chroot 系统中的 passwd 二进制文件。但我不知道为什么它不起作用。安装完成后通过 sudo 命令验证密码时。密码似乎可以正常工作。但是当尝试从 tty 以非 root 用户登录时,密码似乎不正确。

我已经尝试过的事情:

  1. 使用以下代码手动加密提供的密码,并使用 -p 选项将其传递给 useradd 二进制文件:
perl -e 'print crypt("password", "\$6\$SALTsalt\$") . "\n"'"

请指导我稍后如何设置用户提供的密码,而不需要任何用户交互。

谢谢你:)

最佳答案

存在 chpasswd命令。它只是为了使 passwd 在批处理脚本中可用。只是做:

echo "root:rootpassword" | arch-chroot /mnt chpasswd

或者可能更好,不需要 mount -o bind sys procdev 目录:

echo "root:rootpassword" | chpasswd -R /mnt

@subjective:抱歉,这个项目看起来不错,但还有很多工作要做。我想这样做的目的是让 Archlinux 更接近“普通”用户。但是,我不喜欢为项目选择 python。使用普通的 POSIX sh 将使它对所有人可用。我不喜欢硬编码分区、mlocate(你真的使用 mlocate 吗?)、多个 arch-chroot 调用,你可以只执行一个大脚本,而不处理 os.system 错误代码 (!),甚至没有 -Sy (!) 的多个 pacman 调用(如果上游更新 repos,pacman 可能会失败),还有一些我不知道的事情不喜欢。除此之外,漂亮的 python 抽象和很酷的目标。我记得几年(或更多)年前的旧 archlinux 安装脚本,它们很好,但我认为无论如何它们自己都使用了命令。祝你好运。

关于linux - 如何在没有用户交互的情况下创建用户和设置密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55430287/

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