Php 程序可执行文件和日志文件的正确文件权限应该是什么? 我编写了一个Linux系统的C++程序:代码>/Ur/bin /Posixx < /C> >使用配置文件/ETC/PROFXX.CONF和日志文件 /VAR/PROPXX.Log ./P>
现在,我需要使用ApacheWeb服务器和php从web调用这个程序,经过强身份验证。调用该程序可能涉及更改配置文件,当然,还会更改日志文件 我对启用SELinux很感兴趣Php 程序可执行文件和日志文件的正确文件权限应该是什么? 我编写了一个Linux系统的C++程序:代码>/Ur/bin /Posixx < /C> >使用配置文件/ETC/PROFXX.CONF和日志文件 /VAR/PROPXX.Log ./P>,php,c++,linux,apache,permissions,Php,C++,Linux,Apache,Permissions,现在,我需要使用ApacheWeb服务器和php从web调用这个程序,经过强身份验证。调用该程序可能涉及更改配置文件,当然,还会更改日志文件 我对启用SELinux很感兴趣 我的问题是:对于二进制文件、配置文件和日志文件,应该为哪些用户/组以及哪些文件权限进行设置,以便进行正确和安全的操作?嗯,我不知道SELinux,但我想到了几种“传统”解决方案: 首先,chown root/usr/bin/PROG_X,然后使用chmod+s/usr/bin/PROG_X设置setuid位。setuid位导
我的问题是:对于二进制文件、配置文件和日志文件,应该为哪些用户/组以及哪些文件权限进行设置,以便进行正确和安全的操作?嗯,我不知道SELinux,但我想到了几种“传统”解决方案: 首先,
chown root/usr/bin/PROG_X
,然后使用chmod+s/usr/bin/PROG_X
设置setuid位。setuid位导致程序不是以当前用户身份运行,而是以文件所有者(在这种情况下为root)身份运行。这意味着您需要真正确保您的程序尽可能安全。所以要小心使用
setuid的一种替代方法是在程序的/etc/sudoers
中添加一个适当的条目,并通过sudo
调用它。但它具有与程序将以root用户身份运行相同的安全含义,但至少您可以更细粒度地进行访问(例如,您只能允许“www”用户以root用户身份运行程序)
另一个解决方案可能是
chown root:wwwrun所有需要修改的文件。但是,只有当您确切地知道哪些文件,并且该文件集没有更改时,这才有效。好吧,我不知道SELinux,但我想到了几种“传统”解决方案:
首先,chown root/usr/bin/PROG_X
,然后使用chmod+s/usr/bin/PROG_X
设置setuid位。setuid位导致程序不是以当前用户身份运行,而是以文件所有者(在这种情况下为root)身份运行。这意味着您需要真正确保您的程序尽可能安全。所以要小心使用
setuid的一种替代方法是在程序的/etc/sudoers
中添加一个适当的条目,并通过sudo
调用它。但它具有与程序将以root用户身份运行相同的安全含义,但至少您可以更细粒度地进行访问(例如,您只能允许“www”用户以root用户身份运行程序)
另一个解决方案可能是chown root:wwwrun所有需要修改的文件。但是,只有当您确切地知道哪些文件并且该文件集没有更改时,这才有效。对于最锁定的方法(假设日志和配置是敏感的):
Apache以用户“www”、“progx”的身份运行,而组的存在只是为了运行/usr/bin/PROG_X。
/etc/PROG_X.conf归root:progx所有,拥有640权限
/var/PROG_X.log归root:progx所有,拥有660权限
/usr/bin/PROG_X归progx:progx所有,拥有500个权限
/etc/sudoers只允许www以progx的形式运行/usr/bin/PROG_X。
因此,只有root和progx可以查看配置或读/写日志文件,只有root可以修改配置。只有progx可以运行该程序,但apache可以通过sudo以progx的形式专门启动您的程序
[编辑:遗漏了说明程序可能需要更改其配置文件的部分…因此权限将改为660]对于最锁定的方法(假设日志和配置是敏感的):
Apache以用户“www”、“progx”的身份运行,而组的存在只是为了运行/usr/bin/PROG_X。
/etc/PROG_X.conf归root:progx所有,拥有640权限
/var/PROG_X.log归root:progx所有,拥有660权限
/usr/bin/PROG_X归progx:progx所有,拥有500个权限
/etc/sudoers只允许www以progx的形式运行/usr/bin/PROG_X。
因此,只有root和progx可以查看配置或读/写日志文件,只有root可以修改配置。只有progx可以运行该程序,但apache可以通过sudo以progx的形式专门启动您的程序
[编辑:遗漏了说明程序可能需要更改其配置文件的部分…因此权限将改为660]