【发布时间】:2024-05-23 05:20:01
【问题描述】:
我必须创建一个允许我从我的 Debian 中添加/删除/修改用户的 perl 脚本。我读过不建议这样做,但我被要求在不使用系统调用的情况下这样做,因此不允许添加用户/用户添加。此脚本应检查是否已从 mysql 数据库中添加/删除用户,然后将用户添加到系统中。也许通过直接修改 etc/passwd ?有没有 perl 模块可以做到这一点?
提前致谢
【问题讨论】:
我必须创建一个允许我从我的 Debian 中添加/删除/修改用户的 perl 脚本。我读过不建议这样做,但我被要求在不使用系统调用的情况下这样做,因此不允许添加用户/用户添加。此脚本应检查是否已从 mysql 数据库中添加/删除用户,然后将用户添加到系统中。也许通过直接修改 etc/passwd ?有没有 perl 模块可以做到这一点?
提前致谢
【问题讨论】:
在当今的大多数发行版中,还有一个文件 /etc/shadow 与 /etc/passwd 一起使用,因此您很可能还必须在 /etc/shadow 中添加一行。此外,您很可能必须为新用户创建主目录和组,以及其他一些步骤。请参阅http://www.tldp.org/LDP/sag/html/adduser.html 手动创建新用户所涉及的步骤。
说了以上所有,我很想知道反对简单地使用从 perl 脚本调用的useradd 是什么。如果它是安全完成的(即对输入进行清理以防止命令行注入攻击),这种方法似乎比尝试编写 perl 脚本通过执行上述所有步骤来添加用户要简单得多且不易出错。
【讨论】:
在快速 CPAN 搜索后得到Unix::Passw::File。该模块可用于读取和操作密码文件条目。
【讨论】: