旧版源代码控制:xinetd 下的 CVS
我们有一个团队使用旧版源代码控制:cvs。我们在 xinetd 下运行 cvs pserver(配置文件如下)。
审计标志
安全审计提出了一个警告:“确保 cvs 服务器不在 root 权限下运行”。
问题:
我可以通过将“user=root”替换为“user=cvs”来安全地锁定“cvs pserver”吗?有任何有害的副作用或“陷阱”吗?
注意:用户“cvs”拥有“cvs root”目录“/var/cvs/cvs”中的所有文件
我之所以问这个问题,是因为我已经搜索了所有十年前的文档,所有示例都有“user=root”,但没有一个建议更改“user=”参数来提高安全性。
更新: 我试过了。成功了。没有问题。
谢谢
示例:cvspserver 配置文件
# Begin /etc/xinetd.d/cvspserver
service cvspserver
{
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/var/cvs/cvs pserver
}
# End /etc/xinetd.d/cvspserver
答案1
你绝对应该听从他们的建议。这是非常好的建议。
通常,执行此操作时,您需要确保守护进程具有足够的权限来执行其操作。在这种特定情况下,这很可能只是意味着它已经拥有的所有权。我的建议是备份您的存储库,然后继续进行更改。
其工作原理是 xinetd(通常以 root 身份运行)将放弃特权,然后执行 /usr/bin/cvs,其中 stdin 和 stdout 指向 xinetd 管理的套接字。实际上没有什么特别的。CVS 非常简单,除了能够操作其根目录下的文件之外,不需要任何权限。