【发布时间】:2012-03-21 04:11:02
【问题描述】:
在 Windows 上,可以有一个服务允许在用户上下文中运行的客户端使用套接字或管道连接到它,然后模拟连接用户以代表该用户执行操作,例如访问文件只有用户有权访问(或确保没有其他文件被访问)。
在 Mac OS X(Linux 也很有趣)上实现此功能的等效方法是什么?我会假设 set*uid 函数会以某种方式用于此目的?
但是,当用户在套接字上连接时,如何验证我想要模拟的用户并设置要设置的 uid?
另外,set*uid 函数似乎会影响整个进程,这使得它们难以在多线程守护进程中使用。此类服务在 Mac OS X/Linux 上是否有不同的常用设计模式?
编辑: pmjordan 的回答似乎解决了 set*uid per-process-only 问题,而问题 How can I pass user credentials through a Unix-domain socket on Mac OS X? 似乎通过使用 unix 域套接字而不是普通套接字来解决实际的身份验证问题。
【问题讨论】:
标签: macos authentication impersonation