2010-08-25 61 views
1

我们正在设计一个运行在现有Linux系统上的Web服务器应用程序。我们正在使用lighttpd服务器,现在已经遇到了一些安全问题。 由于各种原因,我们选择了Lua来开发我们的应用程序。 由于我们有使用ssh登录到本机的现有用户,我们希望通过Web界面登录的用户使用相同的访问级别,用户名和密码。 优选地,执行动作的用户(他们正在访问系统上的各种配置文件)应具有对由OS处理的文件的访问权限,而不是Web服务器。 这里有什么建议?lighttpd和系统之间的访问权限同步

在此先感谢!

回答

1

你的问题是,你不能改变用户下运行服务器软件时,因此,你不能只要你留在的情况下使用操作系统级别的安全性来控制文件访问权限的人的用户登录服务器的进程。

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

如果一个新的文件,必须创建,那么你需要一个SUID程序,可以将文件的所有者从“网络服务器”,以“用户”的转变。

或者,你可以创建一个SUID程序,可以改变它的UID和接受来自Web服务器的命令。当用户登录时,您使用用户的UID启动程序,然后告诉它要访问哪些文件。