【发布时间】:2013-03-06 18:25:58
【问题描述】:
我正在开发一个与更大的维护应用程序相关联的本土用户数据库。
这个想法已经浮出水面,将我们的用户与系统用户联系起来,每次在我们的程序中生成新用户时创建匹配的 /etc/passwd 条目。其他交互,例如查询用户名的 uid/gid,反之亦然,验证文件系统所有权等。我们已经定义了标准字段,如 user.uid、user.gid、user.home、内部权限等,只需要一个将这些传递到系统的方法。
问题是,在网上搜索任何信息都是大海捞针——我找不到任何用于用户帐户 getter 和 setter 的标准库,我开始怀疑它们是否存在?这里是 spawnv useradd 的正确方法吗?看来一定有更好的办法!
请注意,运行此系统的系统是一次性使用(虚拟化),用于所有意图和目的。
最终编辑:事实证明,最经济的解决方案是:
useradd -g group -c "firstname lastname" -d /export/home/username -m -s /bin/bash username
【问题讨论】:
-
我怀疑在 db-users 和 system-users 之间建立 1:1 关系是个好主意。这将 db-app 紧密绑定到底层操作系统结构,这可能不是您真正想要的,至少从长远来看不是。您最好设置第三个(独立)实体进行身份验证,然后可以用来验证 db-user 和/或 OS-users。 LDAP 可能是这样做的首选工具。
-
@OliCharlesworth Linux != Solaris
-
@Kay:公平点!我读得太快了。
-
这个更适合alt.se.prog
-
@ColeJohnson 如果它超出了 SO 的范围,那么 unix.stackexchange.com 将是该问题的合适位置。
标签: c unix solaris user-accounts libc