外部承包商表示,他们需要对文件系统的一部分具有读/写/执行权限,以便他们可以运行脚本。
我对此表示同意,但我想知道他们在运行什么,以防万一发现一些恶意代码。我猜他们会上传文件,运行它,然后删除它,以防止我发现他们做了什么。
我如何才能知道他们到底做了什么?我的问题具体要求一种自动复制文件的方法,这是一种方法。但如果你有其他解决方案,那就没问题。
例如,如果文件可以自动复制到 /home/root/uploaded_files/,那就太棒了。
答案1
我肯定会考虑让那个承包商 chroot。更好的办法是,找出他们在做什么以及这将/可能产生什么影响。我永远不会在没有适当文档、业务案例和签字的情况下将权限授予第三方来运行脚本。
事后看来一切都很清楚
答案2
对文件的执行权限意味着它可以被执行,但对目录的执行权限意味着用户可以浏览目录内容。
您确定他们正在尝试执行通过 FTP 上传的文件吗?在我看来,他们有一个脚本需要能够获取目录列表(除非他们拥有该目录的执行权限,否则他们无法执行此操作)。
答案3
我引用的是……“假设他们的脚本将恶意跟踪代码插入到某个文件中。在我们在生产服务器上使用它们进行任何工作之前,我想知道这一点!”
您需要制定程序来防止此类事情发生。代码审查就是一个例子。如果我是您,我会告诉承包商在获得访问权限之前先提交代码以供审查。
开发环境通常应与生产环境完全分开,对生产系统的访问应受到严格限制。如果您担心代码在不知情的情况下从开发/测试系统泄漏到生产环境中,那么这就是您的组织需要解决的一个严重问题。如果您受到合规性(例如 PCI)的约束,那么开发分离是一项关键要求。