首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何启用组可写的suexec支持CGI脚本?

如何启用组可写的suexec支持CGI脚本?
EN

Server Fault用户
提问于 2013-05-06 15:44:01
回答 1查看 496关注 0票数 1

我被要求在我们的部门set服务器上建立一个共享的set空间,它可以被多个人访问,并且可能运行CGI或PHP脚本。维护use空间的人可能会决定将其用于提交文件,这意味着他们需要访问脚本创建的任何文件。我们正在科学Linux 6上运行Apache。

由于多个人需要对set空间进行写入访问,我们的标准方法是创建一个所有相关人员都属于的组,然后将set空间中的目录的权限设置为g+ws。suexec对这些文件具有组可写性很不满意,并且拒绝运行它们。

我们如何设置它并确保任何脚本都运行在与主要apache帐户不同的帐户下(并且与不属于we空间组的任何用户不同)?出于问责(和其他原因),我不希望做一个共享的帐户,不同的人将不得不使用它来维护这个网络空间。

为了获得更多的上下文,下面是我们当前设置的方式:我们有一些用户的主目录位于NFS上,并根据需要自动生成目录。大多数人只是使用通过mod_userdir访问的个人网络空间。过去,我们通过在NFS服务器上创建额外的自动目录来满足几个共享We空间的请求,这些目录不绑定到特定的帐户,但组所有权的设置是为了方便多个帐户的访问。到目前为止,这些共享空间只包含静态内容(我们相信相关人员不会从它们运行脚本),因此我们以前从未针对这类空间处理过任何与suexec相关的问题。

编辑:注意,用户可能需要访问脚本创建的文件。

EN

回答 1

Server Fault用户

发布于 2013-05-06 16:58:26

为了确保在这种情况下的问责制,并为发布的内容提供正确的所有权和权限,我使用了文章中描述的工作流的稍微修改的版本。

这就是我实现的方法,请注意,大部分部件是可替换的:

  • 所有已发布的内容都由版本控制系统(本例中的git)管理。
  • 用户在Kerberized中注册了名义帐户以及他们的RSA公钥。
  • 在过去,我使用这样的公钥授权访问不同的repos使用gitosis/gitolite,但您也可以在git-shell中使用普通的git。
  • 不久前,我转到了gitblit,它提供LDAP授权。访问gitblit的web UI需要一个有效的kerberos票证。
  • repos将它们的更新后挂钩符号链接到包含以下内容的脚本:
代码语言:javascript
复制
#!/bin/sh

sudo /usr/local/sbin/publisher-hub2live

exit 0

未经授权的用户不能直接访问脚本:

代码语言:javascript
复制
# ls -lrt /usr/local/sbin/publisher-hub2live
-rwx------. 1 root root 400 Oct 12  2012 /usr/local/sbin/publisher-hub2live

因此,苏苏里:

代码语言:javascript
复制
Defaults:git   !requiretty
git   Host_Alias = (root) NOPASSWD: /usr/local/sbin/publisher-hub2live

用存储库的实际所有者替换git

发布脚本的内容在这里使用“魔术”(简化版本):

代码语言:javascript
复制
#!/bin/sh

echo
echo "**** Pulling changes into Live [Hub's post-update hook]"
echo

cd /path/to/live/repo || exit
umask 0022
unset GIT_DIR
git pull hub master

chown -R root:root /path/to/live/repo
find /path/to/live/repo/ -type d | xargs chmod u=rwx,go+rx
find /path/to/live/repo/ -type f | xargs chmod u=rw,go+r
restorecon -v -R /path/to/live/repo

exec git update-server-info

exit 0

在所有者、组、DAC和MAC权限方面,您的需求可能不同,但是工作流是相同的。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/505370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档