ぱそくま ろご
linux > Subversion > svnに接続できない

svnに接続できない

svnに接続できない理由

コミットができない等、接続できない場合は以下のような理由が考えられます。

  • ユーザーが許可されていない場合
  • iptablesで許可されてない場合
  • SELinuxで許可されていない場合

これらの対象方法は以下の通りです。



ユーザーが許可されていない場合

svnserverで実行されている場合は、[リポジトリパス]/conf/svnserve.confの中身を確認しましょう。

apache httpd+svnで実行されている場合は、リポジトリにhttpdを動かしているユーザー(大抵はapacheやwww)の書き込み権限が必要です。

  • [paso ~]chown apache:apache -R [リポジトリパス]

iptablesで許可されていない場合

現状のiptablesの状態を知るため、「iptables -L」でチェックします。

  • [root ~] iptables -L
  • Chain INPUT (policy DROP)
  • target prot opt source
  • ACCEPT all -- anywhere anywhere
  • ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ftp
  • Chain FORWAD (policy DROP)
  • .
  • .

上記のように、svnやhttpに該当するようなルールが無い場合は、それに関するルールを追加する必要があります。

  • [root ~]iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
  • httpd+SVNの場合はhttpのみでOK
  • [root ~]iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport http -j ACCEPT

SELinuxで許可されていない場合

特にApache httpd+SVNの場合ですが、SELinuxで許可されていない場合、db/txn-current-lockが読めないため、 コミット時に「[リポジトリパス]/db/txn-current-lock': Permission denied」と表示されます。 手っ取り早く回避するにはSELinuxの設定を「Permissive」にします。

  • [root ~]getenforce
  • Enforcing
  • [root ~]setenforce Permissive
  • [root ~]getenforce
  • Permissive

厳密に設定したい方はSELinuxのhttpdの設定を行い、リポジトリのコンテキスト情報を変更する必要があります。

  • [root ~]setsebool httpd_builtin_scripting on
  • [root ~]setsebool httpd_enable_cgi on
  • [root ~]chcon -R -h -t httpd_sys_content_t [リポジトリパス]
  • lsを使ってコンテキストの状態を確認
  • [root ~]ls -Z
  • -rw-r--r--. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 README.txt
  • drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 conf/
  • drwxr-xr-x. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 dav/
  • drwxr-sr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 db/
  • -r--r--r--. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 format
  • drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 hooks/
  • drwxr-xr-x. apache apache unconfined_u:object_r:httpd_sys_content_t:s0 locks/