gpt4 book ai didi

c - 如何将 "log in"作为 C 中的用户?

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:57 24 4
gpt4 key购买 nike

我目前正在制作一个 FTP 服务器,我想实现真实身份验证。我的意思是我的系统上有用户,我希望他们能够使用保存在系统中的用户名密码通过客户端(例如 Filezilla)登录我的 FTP 服务器。

但我不知道要执行此操作并授予良好权利(无法删除用户不是所有者的文件等...)的步骤。

我知道我必须在 /etc/passwd 文件中找到 login/home 目录,我知道我可以在 /etc/shadow 中找到哈希密码文件,但这些密码是如何加密的?

登录后,我是否必须检查用户是否有权自行删除/访问/写入文件,或者是否有办法让系统知道

谢谢。

最佳答案

您不应期望密码存储在特定文件中,也不应假定它会以特定方式加密(实际上是散列)。

密码可能由 NIS 等集中式数据库提供,甚至可能以您运行的 Unix 系统无法处理的方式存储,例如将身份验证委托(delegate)给 LDAP 或事件目录。

一个正确的方法是使用 pam 框架,它被精确地设计为提供一个隐藏底层复杂/灵活设置的单一接口(interface)。

查看您的 Unix 实现的 getpwuid、pam_start 和 pam_authenticate 手册页。

关于c - 如何将 "log in"作为 C 中的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15945830/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com