我们有一个签约的 Web 开发人员,他使用部署脚本来更新和部署网站。为了让他们工作,他们需要通过 httpd 用户对整个 webroot 进行写访问。
我试图说服他们通过 ftp 甚至 scp 上传他们的更改,他们只是不想这样做。
您能否向我提供与我的立场一致的权威消息来源?(假设我的担忧是对的,如果我错了,请告诉我)
我们有一个签约的 Web 开发人员,他使用部署脚本来更新和部署网站。为了让他们工作,他们需要通过 httpd 用户对整个 webroot 进行写访问。
我试图说服他们通过 ftp 甚至 scp 上传他们的更改,他们只是不想这样做。
您能否向我提供与我的立场一致的权威消息来源?(假设我的担忧是对的,如果我错了,请告诉我)
如果 httpd 用户拥有的权限超过了开发人员应有的权限,我认为你是正确的。
此外,当我有我的规则并且开发人员不想听到它们时,我只是将工作传递给下一排的人。
风险:
以上任何一项都意味着他们可以乱搞他们不应该乱搞的东西。除此之外,他们可以将您的网络服务器配置为仅使用他们的脚本,这意味着如果您与他们违反合同,您将受到很大的伤害来解决这个问题。(这是一种可能,并不是说他们会)
如果您允许他们访问 shell,我建议您通过合同(!),画出他们可以触摸和不能触摸的内容。(用大棒轻声说话)
就像你说的,如果他们的脚本应该只写入某个目录,那么除了可以写入 web 文件夹的 shell 之外,绝对不需要给他们任何东西。如果他们需要访问某些配置文件,您可以将他们添加到 httpd 组。如果他们需要重新启动网络服务器的访问权限,您只需给他们 sudo 即可获得重新启动命令。
永远不要给任何人超过完成工作所需的许可。如果营销持续存在,您会非常仔细地概述如果这些开发人员失败并造成停机会发生什么,以及这将如何影响公司形象。确保你也遮住自己。
编辑
他们想以 httpd 用户身份运行自己的访问脚本,这样他们就可以通过浏览器获得完全的写入权限?
这不是一个好主意,如果那个东西被破坏了,你会受到很大的伤害。
目前我能想到的最好的东西是这个 nist 指南:http : //csrc.nist.gov/publications/nistpubs/800-44-ver2/SP800-44v2.pdf(查看第 5.2 章)
searchsecurity 的一篇关于为什么应该使用开发服务器的文章:
http://searchsecurity.techtarget.com/tip/Six-steps-to-securering-your-Web-server
为了使用 ftp 或 scp,开发人员需要使用对 webroot 具有写入权限的特定登录名。虽然 httpd 用户具有相同的写入权限,但它还具有您的开发人员不需要的额外权限,如果不小心分发,可能会很危险。
最佳实践是最小权限原则,即只给用户(以及进程和脚本)他们需要的访问权限,而不是更多。