我有一个用户,我只想使用subversion.我们喜欢有时使用svn ssh:// URL(对于公钥和诸如此类的东西),所以我需要它们能够通过ssh连接并仅运行svnserve命令.
当使用svn ssh URL时,svn ssh’es并传递参数“-c svnserve -t”.我按如下方式编写了一个自定义shell来过滤可以运行的命令.这可行,但它没有将输入传递给svnserve,所以当我尝试“svn up”时,我得到“svn:Connection意外关闭”.
#!/bin/bash if [ "$1" == "-c" ] && [ "$2" == "svnserve" ] && [ "$3" == "-t" ] && [ "$4" == ""] ; then exec svnserve -t else echo "Access denied. User may only run svnserve." fi
解决方法
我很确定你可以在sshd_config的末尾添加这样的东西.
Match User svnuser ForceCommand svnserve -t