web-dev-qa-db-ja.com

Linux Subversionユーザーにsvnserveのみの実行を許可するにはどうすればよいですか?

Subversionのみを使用できるようにしたいユーザーがいます。時々(公開鍵などに)svn + ssh:// URLを使用するのが好きなので、ssh経由で接続し、svnserveコマンドのみを実行できるようにする必要があります。

Svn + ssh URLを使用する場合、svn sshが入り、引数「-csvnserve-t」を渡します。実行可能なコマンドをフィルタリングするために、次のようにカスタムシェルを作成しました。これは機能しますが、入力がsvnserveに渡されないため、「svn up」しようとすると、「svn:接続が予期せず閉じられました」というメッセージが表示されます。

#!/bin/bash
if [ "$1" == "-c" ] && [ "$2" == "svnserve" ] && [ "$3" == "-t" ] && [ "$4" == ""] ; then
        exec svnserve -t
else
        echo "Access denied. User may only run svnserve."
fi
3
sbleon

Sshd_configの最後にこのようなものを置くことができると確信しています。

Match User svnuser
  ForceCommand svnserve -t
4
Zoredache

Authorized_keysファイルに次の行を追加しますcommand="svnserve"そして彼の鍵の冒頭には何もありません。このようにして、彼がsshに接続すると、そのコマンドが実行されて終了します。

command="svnserve" ssh-rsa AAA...LONG AND TEDIOUS KEY...== user@localhost

小切手 man sshdおよび Subversionドキュメント 詳細

1
Dan Andreatta