我们希望自动为新项目创建 svn repos 和 trac 环境。基本上,这意味着创建一个 Web 脚本,从用户那里获取一些信息(如环境和 repo 名称等),然后执行
sudo -u svn svnadmin create /var/svn/<projectname>
trac-admin /var/trac/sites/<projectname> initenv [... All extra params...]
对于第二条命令,这很简单,因为它已经以 www-data 用户身份运行,所以我不必使用 sudo。但对于第一条命令,我必须使用 sudo 并添加www-data
到 sudoers 文件中。我想知道这是否是一个好主意,以及在这种情况下如何做到这一点。阅读手册页让我对此的疑虑多于确定性。
顺便说一句,这个网络服务器只能从我们的内部网络访问。操作系统是 Ubuntu Server 10.04。
答案1
更新
将文件夹所有者设置/var/svn
为www-data
:
chown -R www-data:www-data /var/svn
然后您就可以从无需的网页创建一个 Subversion 存储库sudo
。
如果你真的想这样做,我们可以限制www-data
用户运行svnadmin
命令而不提示输入密码。输入visudo
并添加以下行:
www-data ALL=(ALL) NOPASSWD:/usr/bin/svnadmin