所以我主要用 C/C++ 编写一个程序,但我认为这个问题适合服务器故障,因为它与 Linux 发行版 Ubuntu 有关。
因此,我正在寻找一种安装 Ubuntu 12.04(或更高版本)的方法(可能是黑客方法),但不要在安装时设置用户名/密码。我知道,如果您使用带有 Active Directory 的 Windows Server 2008/2012,则可以指定用户在下次启动时更改/设置密码,但我不确定如何在 Linux 环境中做到这一点。
基本上这里的目标是什么;normal installation (Ubuntu)
-> Boot once, tweaking
-> next bootup set username/password
。除了最后一部分之外,其余都是由我和我制作的程序完成的,让用户感到轻松自在。
现在我想到了删除/修改 passwd 等文件,尽管这还不够。虽然有点离题,但我认为这部分也很重要,该程序基本上会设置具有正确权限的文件/目录并相应地修改 conf 文件。
对于 Ubuntu 12.X++(实际操作系统文件通过 TFTP/NFS 提供),则用户应该提示有username/password
一次,他们就像在全新安装操作系统一样。
这是否可行,还是我必须设置默认用户名/密码并告诉用户自己手动删除/设置自己的用户名/密码?这是我现在所做的,但我更喜欢另一种方式来做到这一点。
其他信息:正在进行Ubuntu 服务器,chroot
并且mount
文件系统可以进行更改。
希望没有人误解我,我期待答案。
-- 杜斯
答案1
我做类似事情的方式是:
- PXE/TFTP 安装基本操作系统(根据您的操作系统特定需求进行 kickstart 或预安装)
- puppet 配置操作系统以符合我的政策
- LDAP/Kerberos 提供身份验证/授权(我正在使用免费IPA)
- 创建账户时,密码设置为首次登录时更新(类似于
chage -d0 $USER
) - 多实例化
/home
和/tmp
使用pam_namespace(8)
这样,我可以提供集中配置的帐户,用户的主目录仅在需要时创建,并且用户在激活帐户时必须更改密码。