Documentation effort magma 0.0.20070911 released magma 0.0.20070829 released magma 0.0.20070806 released on SVN All the news
NEWS :: magma v.0.0.20070911 released on SVN and download area
Boot protocol has been revised. In place of using special protocol macros to exchange nodes, connecting node will use normal flare protocol operations to query nodes from bootserving node simply reading contents of directory /.dht
magma_mknod() now checks if mode param contains
informations about flare type and also checks flare type is not DIR.
Boot code now figure magma uid and gid from system files and
tries to seteuid() and setegid() before
any other operation.
magmad is now installed suid and sgid as user magma and group
magma (which should be present in /etc/passwd and /etc/group)
utils.h provides new get_user_groups(uid)
function that returns an array of gid_t elements describing groups of user
uid. It's used mainly in check_permission().
magma_simplify_path() function coded to simplify paths.
Mainly used by protocol_console.c since FUSE already
simplify paths before passing to filesystem.
This function can:
- tear off muliple slash sequences
- tear off redundant './' portions
- resolve '/something/../' into '/'
ACL has been completed. Rules are read from file
/etc/magma/acl and are declared using this syntax:
/share/path: op /sub/path ipaddr[/mask] op /sub/path ipaddr[/mask] [...]
where:
/share/path is the share exported by magma
op is one in r (read-only), w (read/write), n (no access)
/sub/path is an arbitrary path under /share/path
ipaddr[/mask] is the network part to which the rule applies.
Note that mask can be specified in the form n.n.n.n or in the form /N where N is a number between 0 and 32. If missing, a netmask of 255.255.255.255 is assumed, so 127.0.0.1 is considered a host address equivalent to 127.0.0.1/32.
Rules are matched using this flow:
- Select proper share
- For each rule of selected share:
- Check if
/sub/pathmatches at starting of query path; if not, ignore the rule. - Compare how deep is this subpath in length compared to previous best subpath found. If lesser, ignore the rule.
- Is the netmask bigger than previous best rule mask. If not ignore the rule.
- Matching ipaddr and netmask. If does not match, ignore the rule.
- Check if is more restrictive than previous best rule. If operation
is
nits more strict thanwwhich in turn is more strict thanr. If less restrictive, ignore the rule.
- Check if
protocol_flare.c and mount.magma.c has been modified to
embed ACL. Checking is done inside each magma_* function in
mounter client and inside each transmit_* function on server
side.
mount.magma now has a --share=<STRING>
command line option to specify the share to be mounted.
magmad should be modified to support multiple shares.
