lighttpd和系统之间的访问权限同步

我们正在设计一个基于现有 Linux 系统的网页服务器应用。我们使用 lighttpd 服务器,但现在遇到了一些安全问题。 由于各种原因,我们选择 Lua 来开发我们的应用。 因为我们已经有用户在通过 ssh 登录到机器上,所以我们希望通过网页界面登录的用户能够使用相同的访问级别、用户名和密码。 最好的情况是,执行操作的用户(他们正在访问系统上的各种配置文件)应该具有由操作系统处理的文件访问权限,而不是由网页服务器处理。 有什么建议吗?

提前感谢!

原文链接 https://stackoverflow.com/questions/3563735

点赞
stackoverflow用户34088
stackoverflow用户34088

你的问题是当人类用户登录时,无法更改服务器运行时的用户。因此,在服务器进程的上下文中,只要你保持操作系统级别的安全性就无法控制文件访问。

你可以将所有用户和网页服务器放在一个组中,并使用 umask 002 确保组成员都可以访问所有文件。在你的 LUA 代码中,需要检查当前用户是否是文件的所有者,如果不是则拒绝操作。

如果需要创建新文件,则需要一个 SUID 程序,可以将文件所有者从“webserver”更改为“user”。

或者,你可以创建一个 SUID 程序,可以更改其 UID,并接受来自 webserver 的命令。当用户登录时,你可以以该用户的 UID 启动该程序,然后告诉它要访问哪些文件。

2010-08-25 07:42:11