[Balug-Talk] Monotone permissions problem
Joe Brenner
doom at kzsu.stanford.edu
Mon Jul 30 18:32:58 PDT 2007
I'm trying to get a simple monotone setup working over a network.
I'm seeing a permissions problem: I can get read access, but not
write access. I've run out of ideas for things to check, and
I'm looking for suggestions.
A pull command on the client works without any problem:
mtn --db=/var/mtn/wudan.mtn pull -kdoom-t1 at dancer.or.com 192.168.1.3 com.or.t1
(Note here the "client" is 192.168.1.144, where the "server" is 192.168.1.3)
But when I issue the sync command on the client:
mtn --db=/var/mtn/wudan.mtn sync 192.168.1.3 com.or.t1
I get the following messages:
mtn: connecting to 192.168.1.3
mtn: finding items to synchronize:
mtn: ticks: c="certificates"/256, k="keys"/1, r="revisions"/64
mtn: ckr
mtn: warning: protocol error while processing peer 192.168.1.3: 'received network error: denied 'doom-t1 at dancer.or.com' write permission for 'com.or.t1' excluding '''
mtn: ticks: >="bytes in"/1024, <="bytes out"/1024, r="revs in"/1, R="revs out"/1
mtn: ><rR
mtn: error: processing failure while talking to peer 192.168.1.3, disconnecting
The error messages on the server side looks like:
mtn: beginning service on <all interfaces> : 4691
mtn: accepted new client connection from 192.168.1.144 : 50787
mtn: allowed 'doom-t1 at dancer.or.com' read permission for 'com.or.t1' excluding ''
mtn: warning: error: denied 'doom-t1 at dancer.or.com' write permission for 'com.or.t1' excluding ''
mtn: peer 192.168.1.144:50787 write failed in working state (error)
The details on the setup is like so:
Both client and server are GNU/linux machines with monotone 0.30 installed.
On the server:
~/.monotone/write-permissions:
doom-t1 at dancer.or.com
~/.monotone/read-permissions:
pattern "*"
allow "doom-t1 at dancer.or.com"
~/.monotone/monotonerc:
function get_passphrase(keypair_id)
return "XXX"
end
function get_netsync_read_permitted (collection, identity)
if (identity == "doom-t1 at dancer.or.com") then return true end
return false
end
function get_netsync_write_permitted (collection, identity)
if (identity == "doom-t1 at dancer.or.com") then return true end
return false
end
function get_netsync_anonymous_read_permitted (collection)
return false
end
On the client:
~/.monotone/monotonerc:
function get_passphrase(keypair_id)
return "YYY"
end
Previously I've done the key exchange like so:
On the client:
mtn genkey doom-t1 at fineline.or.com > ~/doom-t1-dancer.pubkey
(with passphrase matching the "XXX" above).
scp ~/doom-t1-dancer.pubkey doom at 192.168.1.3:~/
Then on the server:
cat ~/doom-t1-dancer.pubkey | mtn --db=/var/mtn/wudan.mtn read
More information about the Balug-Talk
mailing list