我使用mercurial存储库进行全局配置。系统配置文件链接到/ opt / config,这是root拥有的hg repo。
我希望所有用户都能够从repo更新设置,即致电hg pull -u
/opt/config
我尝试创建以下脚本
# -rwsr-x--x 1 root users 343 Mar 15 14:10 /bin/update_config
#! /bin/bash
cd /opt/config
hg pull -u
(注意,s位已设置)。在这种情况下,hg
不会读取/root/.hgrc
中包含HTTP登录参数的设置(用户不能知道参数)
即使我执行export HOME=/root
,也不会读取hgrc
文件。
我应该如何更改脚本以使其成为可能?
修改
这似乎是一般性许可问题。我用sles11。行touch /root/bla
在此脚本中不起作用,为什么?
答案 0 :(得分:1)
Mercurial是一个分布式版本控制系统,在我看来你没有正确使用它。如果要求用户修改存储库,则每个用户都应该处理自己的存储库,然后将其配置为push
到您想要的位置(/opt/config
)。因此,mercurial工作流程将处理合并问题。如果他们只是存储库的使用者,您应该1)创建一个cron条目来自动更新它,或者2)使用像Jenkins或TeamCity这样的持续集成系统,它会在某些事情时自动更新存储库被推到了它。
如果你仍然想要实现你的要求,你应该为此目的查看sudo
命令。将/ opt / config所有权设置为新的无密码用户,配置sudo
以允许切换到此用户而无需密码,并仅在〜theuser / .hgrc中进行配置。这将使维护更容易(只需要一个.hgrc来处理)。