EarOwlの日記: 一般ユーザーによる svnserve -d の禁止方法? 8
日記 by
EarOwl
svn+ssh でリポジトリにアクセスする場合、 svnserve をトンネルモードで使用するので、一般ユーザーにも svnserve を実行できる権限が必要だと思うのだけれど、一方で一般ユーザーが svnserve をデーモンモードで起動することは禁止したい…ということは可能なのだろうか?
svn+ssh でリポジトリにアクセスする場合、 svnserve をトンネルモードで使用するので、一般ユーザーにも svnserve を実行できる権限が必要だと思うのだけれど、一方で一般ユーザーが svnserve をデーモンモードで起動することは禁止したい…ということは可能なのだろうか?
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
オプションとユーザーを見て起動しないようにすればいいのでは? (スコア:0)
あるいはプロセスを監視して殺して回るとか
Re: (スコア:0)
実行中のバイナリのハッシュ値でフィルタしないと
プロセス名だけだと、ファイル名を変えてコピーしたバイナリを実行すれば回避可能
Re: (スコア:0)
極端な話、自前でビルドされたら…とかまで考えると、結局ログインしてシェルが使える時点でアウトなような気もします。
そうすると、 (github みたいに) シェルにログインできないように制限して svn+ssh でのアクセスだけを許可することが出来るかどうかですかね。
Re:オプションとユーザーを見て起動しないようにすればいいのでは? (スコア:1)
あれ、 AC でコメントしてしまった… #2628271 [srad.jp] は EarOwl のコメントです。
Re:オプションとユーザーを見て起動しないようにすればいいのでは? (スコア:1)
ログイン禁止で良いなら、
・sshd の設定で ForceCommand を svnserve -t にする
・鍵認証のみ許可し、 command="svnserve -t" とコマンドを指定して鍵を登録する
といった方法で出来そう。
ログインを許可しつつ svnserve -d だけを禁止するというのはどのみち抜け穴がありそうだし、悪意を持ってやられる場合サーバー側でどれだけ対策しても結局手元にある checkout からどうとでも出来てしまうから、信頼できるユーザーに限定する前提で、使用しないよう指示するという程度が現実的かも。
Re: (スコア:0)
そこまで信頼出来ない利用者がいるならWebDAV+SSLのほうが良いのでは。
Re:オプションとユーザーを見て起動しないようにすればいいのでは? (スコア:1)
svn だけ考えるなら実際に使った経験がある Apache + WebDAV + mod_dav_svn の方が楽なんですが、同じようなことを bzr・git・hg でも…と考えると ssh がどの VCS でもほぼ標準で使えて確実かな、と思いまして。
手間だけど (スコア:0)
実体の実行権限をsvngroupに限定して、
スクリプトで実行させたくないオプションをフィルタして、su svnuserしたうえで実行。
スクリプトには該当者の実行権限だけを与えておく。