【问题标题】:How to manage users in linux without using adduser/useradd如何在不使用 adduser/useradd 的情况下在 linux 中管理用户
【发布时间】:2024-05-23 05:20:01
【问题描述】:

我必须创建一个允许我从我的 Debian 中添加/删除/修改用户的 perl 脚本。我读过不建议这样做,但我被要求在不使用系统调用的情况下这样做,因此不允许添加用户/用户添加。此脚本应检查是否已从 mysql 数据库中添加/删除用户,然后将用户添加到系统中。也许通过直接修改 etc/passwd ?有没有 perl 模块可以做到这一点?

提前致谢

【问题讨论】:

    标签: linux perl


    【解决方案1】:

    在当今的大多数发行版中,还有一个文件 /etc/shadow 与 /etc/passwd 一起使用,因此您很可能还必须在 /etc/shadow 中添加一行。此外,您很可能必须为新用户创建主目录和组,以及其他一些步骤。请参阅http://www.tldp.org/LDP/sag/html/adduser.html 手动创建新用户所涉及的步骤。

    说了以上所有,我很想知道反对简单地使用从 perl 脚本调用的useradd 是什么。如果它是安全完成的(即对输入进行清理以防止命令行注入攻击),这种方法似乎比尝试编写 perl 脚本通过执行上述所有步骤来添加用户要简单得多且不易出错。

    【讨论】:

    • 您好 mti2935,感谢您的回答!我也不知道为什么我的老师要我这样做,可能是出于安全原因,但如果你说没问题,那我也不知道。
    【解决方案2】:

    在快速 CPAN 搜索后得到Unix::Passw::File。该模块可用于读取和操作密码文件条目。

    【讨论】:

    • 这正是我所需要的,我已经对其进行了测试,并且效果很好。谢谢!
    最近更新 更多