首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有root权限的Linux/Unix中验证用户的最简单方法

在没有root权限的Linux/Unix中验证用户的最简单方法
EN

Stack Overflow用户
提问于 2009-06-08 20:27:44
回答 3查看 2.2K关注 0票数 2

我正在编写一个跨平台的TCP/IP服务器,在为用户提供服务之前,我需要对用户进行身份验证。需求规定我使用平台的“本地”身份验证,而不是创建自己的身份验证机制。

对于Linux/Unix OS系列,我使用getpwnam对用户进行身份验证,我所知道的确保这一点的最可靠方法是以root用户身份启动我的服务。没有其他原因让服务以root身份运行,我想知道我的选择是什么?我可以在不影响安全性的情况下以root身份调用getpwnam吗?或者,如果有替代getpwnam的方法,它们的可移植性如何,以及从“它们需要什么配置工作?独立身份验证机制被排除在外”的意义上来说,它们的“管理员友好性”是因为它创建了“太多的配置工作”。

EN

回答 3

Stack Overflow用户

发布于 2009-06-08 20:34:35

你有没有看过PAM authentication?

票数 1
EN

Stack Overflow用户

发布于 2009-06-11 11:43:07

使用SASL,例如Cyrus SASL。不需要root权限,所有流行的Linux发行版都支持它。我使用它来验证由Apache提供服务并用Python编写的intranet站点的用户。其中,Sendmail和Postfix使用它进行身份验证。

票数 1
EN

Stack Overflow用户

发布于 2009-06-08 20:32:54

使用getpwnam()不需要根用户权限。

尝试从卷影密码文件或使用PAM的AFAIK获取信息时,确实需要root权限,这会带来一些问题。但是,您也许能够以root身份启动进程,初始化对PAM的访问,然后删除权限。这是未经证实的猜测,但至少在某种程度上是合理的。

请注意,在大多数系统中,getpwnam()不会返回加密(或散列)密码。因此,您需要仔细考虑计划如何对用户进行“身份验证”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/966827

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档