ssh – 如何让linux subversion用户只执行svnserve?

我有一个用户,我只想使用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

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...