2011-03-02 20 views
0

我使用bluehost在我的共享主機帳戶上設置了一個mercurial服務器。我有ssh訪問權限,但沒有訪問apache配置。基本上,mercurial服務器運行一個cgi腳本,在我的情況下是domain.com/repos/hg.cgi(用於訪問服務器上的所有存儲庫)。我使用.htaccess文件和auth文件保護了「repos」目錄。使用.htaccess和authfile保護CGI腳本的不同部分

但方式善變的行爲,例如庫「堆棧」訪問這樣的: domain.com/repos/hg.cgi/stack

這就帶來了一個問題,因爲身份驗證的回購發生目錄,所有有權訪問的用戶現在都可以訪問所有的存儲庫。

有沒有一種方法可以使用.htaccess文件來保護單個存儲庫?

回答

2

在每個倉庫的.hg/hgrc文件,你可以列出能做和不能訪問用戶:

[web] 
allow_read = you,yourfriend 
allow_push = you 
+0

這個很有效,很好。非常感謝你。 – Millianz 2011-03-03 01:49:51

0

如果只想本地主機訪問它使用

<File "/path/to/repos/hg.cgi/stack"> 
order deny, allow 
deny from all 
allow from 127.0.0.1 
</File> 
+0

您還可以在文件標記中提供不同的身份驗證 – RedSoxFan 2011-03-02 20:58:34

+0

我可以在.htaccess文件中使用 ...語法嗎? – Millianz 2011-03-02 21:16:27

+0

因爲/ stack不是一個實際的文件,所以我不認爲這會起作用 - 它是文件hg.cgi上的額外路徑信息。通常你會用代替它,但我不認爲它們在'.htaccess'文件中被允許。 – 2011-03-02 22:44:35

0

一個共享的主機系統,您可以通過SSH訪問,如果您有興趣,可以使用hg-gateway通過共享SSH共享存儲庫。這樣你就不必處理輸入或保存https密碼。