2008-11-11 53 views
5

Tôi đang thực hiện bảo trì trên máy chủ svn riêng. Xác thực được xử lý thông qua HTTP cơ bản HTTP + mod_authz_svn. Tôi cần phải có nó để mọi người dùng có quyền truy cập đọc/ghi, ngoại trừ một người dùng chỉ đọc. Tuy nhiên, người dùng chỉ đọc vẫn cần phải được xác thực. Tôi thiết lập tệp cấu hình authz của mình như sau:Người dùng chỉ đọc một lần cho svn

[/] 
* = rw 
read-only = r

Nhưng điều này không hiệu quả. Người dùng "chỉ đọc" vẫn có thể thực hiện thay đổi. Tôi có thể làm mọi thứ chỉ đọc cho tất cả mọi người, nhưng * bit dường như ghi đè những gì tôi đang cố gắng đặt cho "chỉ đọc".

FWIW, mảnh liên quan của conf Apache là:

 <Location /repos> 
    DAV svn 
    SVNPath ... 
    SVNIndexXSLT "/svnindex.xsl" 

    AuthzSVNAccessFile ... 

    AuthType Basic 
    AuthName ... 
    AuthUserFile ... 
    Require valid-user 
</Location> 

Trả lời

8

Trong trường hợp này, người dùng chỉ đọc vẫn viết truy cập vì nó cũng phù hợp với * nhóm.

Cách an toàn để đạt được những gì bạn muốn là tạo một nhóm gồm tất cả người dùng ngoại trừ chỉ đọc, ví dụ:

[groups] 
all-but-ro = harry, sally, ... 

[/] 
@all-but-ro = rw 
read-only = r 

(cách khác, bạn có thể chỉ cần tạo nhiều = dòng rw ra khỏi file passwd)

Nó có thể là svn phù hợp với từ trên xuống dưới - đây không phải là tài liệu, và tôi đã không kiểm tra . Vì vậy hãy thử

[/] 
read-only = r 
* = rw 
+0

+1: _Exactly_ những gì tôi định nói :-) – alastairs

+0

Tôi đã thử đối sánh ngược lại, không hoạt động. Có cách nào để tự động nhóm không? Tôi không muốn phải xây dựng lại tệp này bất cứ khi nào người dùng được thêm vào máy chủ. – iconoplast

+0

Nếu đó là tệp hoàn chỉnh - sự cố khi xây dựng nó tự động là gì? –

0

Hmmm, các bài viết trước đó có thể đúng về trình tự ACL, nhưng ...

cấu hình của tôi bao gồm

AuthzSVNAccessFile "<path-to-svn-acl-file>" 

Có thể đây cũng là một vấn đề?

Các vấn đề liên quan