Mucker Levels: There are 8 permissions levels in ProtoMUCK. Level zero is a non-bitted player, and has no ability to use any code on the MUCK, be it MPI or MUF. A player set = M is a MEEPER, and may use MPI, but no MUF. Levels M1 to W4 have access to the MUF editor, and may program MUF code. The MUCKER level permissions that a program runs at is its owner's level. If it is owned by a player who is M2, the MUF runs at a M2 level. Programs owned by W2's and higher are considered W-bitted MUFs, and will run at that permission level, regardless the bit set on the program itself. The mucker levels available with the man command are: (ie, type man M1) M1 M2 M3 W1 W2 W3 W4 (Mucker 1-3 and Wizard 1-4) Note that the manual entries deal only with how a M/W bit affects MUF, not other in-server restrictions. MUCKER1 - Apprentice Level one MUCKER's are apprentices, and although the M1 bit is considered a 'Learner's Bit', there is still a lot that can be done with them, so their distribution should still be done with some consideration. M1 programs always run as if they are SETUID. Any notifying prim, like NOTIFY and NOTIFY_EXCEPT will automatically prepend the M1 user's name to the beginning of the message, though this can be toggled as an @tune parameter. M1 programs have an absolute instruction level that is equal to the @tuned PREEMPT instruction limit, typically around 20k instructions. M1s may use any non-restricted prim (prims that have no minimum level), though other prims may have additional restrictions. See: M2, MUCKER LEVELS MUCKER2-Journeyman M2 programmers have access to a whole new level of prims, and are given a much higher instruction count limit, roughly 4 times the @tune PREEMPT limit, or around 80k instructions. It is recommended that only trusted players be given M2, and only if they are able to demonstrate some competence in MUF. See: M2 PRIMS, M3 MUCKER3-Master M3s can use some of the connection related prims, and have fewer restrictions with other prims as well, such as moveto. Refer to the documentation on individual prims to see what M3's are able to do that an M1 or M2 cannot. Their instruction count limit is roughly twelve times the @tuned PREEMPT limit, typically around 320k. M3's do have quite a bit of flexability and power with their use of MUF. It is important to only give M3s to non-staff members who are highly trusted. See: M3 PRIMS, W1 WIZARD1-MAGE W1 is given more power over information retrieving prims, such as conhost, and others. They also have way fewer restrictions with the prims, such as the building prims. They still cannot write to restricted props on objects they do not own, nor use setown to change ownership of objects to other players. W1s have no instruction count limit. W1s can also delete macro definitions, set their programs to run AUTOSTART, and set programs = S & H to run with caller privleges. It is recommended that W1 bits be given to coders of a MUCK's staff. They should not be generally given to non-staff members. See: W1 PRIMS, W2 WIZARD2-Wizard W2 is technically the first 'wizbit' level, in terms of MUF. At this level, almost all prim restrictions are ignored, programs can change restricted props on objects they do not own except for @ props, use setown, and many other higher level prims. There are no limits on instruction counts, not even with programs running in PREEMPT mode. It is recommended that W2 be given to admin level coders, as the lack of restrictions on W2 programs make them very powerful. See: W2 PRIMS, W3 WIZARD3-ArchWizard W3 level programs have almost no restrictions whatsoever. Only the file prims are unavailable to W3s. No instruction limits on any program, and the ability to read/write @ props, which are unavailable to W2s. It is recommended that W3s be given to only the MUCK's MUF wiz or wizzes, as the lack of any restrictions requires that players who have W3 permissions be highly trustworthy. See: W3 PRIMS, W4 WIZARD4-Boy W4 is almost the same as W3 in terms of permissions, the only noteable difference being the access to the file prims that W3's do not have. Under most conditions, there is little need for any coder to have a W4, unless the file prims are specifically required. See: W4 PRIMS There is no help for "w5" There is no help for "m1 prims" The following prims become available at the level of M2, though they still may have some uses reserved for higher permission levels: addpennies ( d i -- ) movepennies ( d1 d2 i -- ) timestamps ( d -- i i2 i3 i4 ) newroom (d1 s -- d2) newobject (d1 s -- d2) contime (i1 -- i2) conidle (i1 -- i2) nextprop (d s1 -- s2) propdir? (d s -- i) descridle ( i -- i ) descrtime ( i -- i ) findnext ( d1 d2 s1 s2 -- d3 ) See: M2, MUCKER LEVELS, invididual prim entries for more details The following prims become available at the level of M3, though they still may have some uses reserved for higher permission levels: online ( -- d ... i ) condbref (i -- d) connotify (i s -- ) stats ( d -- total rooms exits things programs players garbage ) recycle (d -- ) condescr ( i -- i ) descrcon ( i -- i ) descriptors ( d -- ix...i1 i ) queue ( i d s -- i ) parseprop ( d s s i -- s ) parsepropex ( d s1 dict i -- dict s ) nextplayer ( d -- d' ) descr_array ( d -- a ) online_array ( -- a ) descrflush ( i -- ) descr_html? ( i -- i ) descr_pueblo? ( i -- i ) descr_welcome_user ( i -- ) descr? ( i -- i ) event_send ( i s ? -- ) motd_notify ( d -- ) nextprogram ( d -- d ) nextexit ( d -- d ) nextroom ( d -- d ) nextthing ( d -- d ) descrdbref ( i -- d ) watchpid ( i -- ) getobjinfo ( d -- dict ) descrbufsize ( d -- i ) See: M3, MUCKER LEVELS, individual prim entries for more details The following prims become available at the level of W1, though they still may have some uses reserved for higher permission levels: newexit (d1 s -- d2) conhost (i -- s) conipnum (i -- s) nextdescr (i1 -- i2) fork ( -- i) nextowned ( d -- d' ) notify_descriptor ( i s -- ) ansi_notify_descriptor ( i s -- ) setpassword ( d s1 s2 -- ) next_flag ( d s -- d ) nextowned_flag ( d s -- d ) nextplayer_flag ( d s -- d ) nextthing_flag ( d s -- d ) nextplayer_power ( d s -- d ) nextentrance ( d d -- d ) descrhost ( i -- s ) descripnum ( i -- s ) firstdescr ( d -- i ) lastdescr ( d -- i ) descr_flag? ( i s -- i ) notify_descriptor_char ( i i -- ) bandwidth ( -- i i i ) get_macros_array ( -- dict ) See: W1, MUCKER LEVELS, individual prim entries for more details The following prims become available at the level of W2, in addition, W2's are no longer restricted by having to own an object in order to make changes to it. There is little a W3 can do with these prims that a W2 cannot do. conboot (i -- ) parsempi ( d s1 s2 i -- s3 ) descr_setuser ( i1 d s -- i2 ) program_getlines ( d i i -- arr ) program_linecount ( d -- i ) insert_macro ( s s -- i ) kill_macro ( s -- i ) See: W2, MUCKER LEVELS, individual prim entries for more details The following prims become available at the level of W3, in addition W3's are able to manipulate the @ props that W2 and below are unable to. There is almost nothing a W4 can do with these prims that a W3 cannot do. conuser (i -- s) conport (i -- s) force (d s -- ) setsysparm ( s1 s2 -- ) checkpassword ( d s -- i ) newplayer ( s1 s2 -- d ) copyplayer ( d1 s1 s2 -- d2 ) toadplayer ( d1 d2 -- ) logstatus ( s -- ) sockopen ( s1 i -- socket s2 ) socksend ( socket s -- i ) sockrecv ( socket -- s ) sockclose ( socket -- i ) nbsockopen ( s1 i -- socket s2 ) get_sockinfo ( socket -- dict ) sockcheck ( socket -- i ) socket_setuser ( socket d s -- i ) set_sockopt ( socket i -- i ) socktodescr ( socket -- i ) propqueue ( d1 s1 d2 s2 -- ) envpropqueue ( d1 s1 d2 s2 -- ) newpassword ( d s -- ) descr_logout ( i -- ) descruser ( i -- s ) descrport ( i -- s ) descrconport ( i -- i ) getpids ( d -- arr ) getpidinfo ( i -- dict ) getdescrinfo ( i -- dict ) descrboot ( i -- ) descr_set ( i s -- ) dump ( -- ) delta ( -- ) sqlclose ( sql -- ) sqlping ( sql -- i ) sqlquery ( sql s -- dict ... dictn n arr ) sqlconnect ( s s s s i -- sql i ) copyprops ( d s d s i -- i ) sockshutdown ( socket i -- i ) See: W3, MUCKER LEVELS, individual prim entries for details Every prim in MUF can be used by W4, with every permissions check cleared. In addition, they have access to the file prims listed below: fwrite ( s1 s2 i1 -- i2 ) fappend ( s1 s2 -- i ) fread ( s1 i -- s2 ) freadn ( s1 i1 i2 -- s2 ) freadto ( s1 i1 s2 -- i2 s3 ) fpublish ( s -- i ) fcr ( s -- i ) bread ( s1 i1 -- i2 ) bwrite ( i1 s i2 -- i3 ) bappend ( i1 s -- i2 ) fsinfo ( -- i1 .. i8 ) curid ( -- i1 i2 ) fstats ( s -- i1 ... i6 ) fsize ( s -- i ) frm ( s -- i ) fren ( s1 s2 -- i ) getdir ( s -- arr ) mkdir ( s -- i ) rmdir ( s -- i ) newprogram ( s -- d ) compile ( d i -- i ) uncompile ( d -- ) lsockopen ( i i -- lsocket s ) sockaccept ( lsocket -- socket ) armageddon ( s -- ) shutdown ( s -- ) restart ( s -- ) program_insertlines ( d i1 arr -- i2 ) program_deletelines ( d i1 i2 -- i3 ) See: W4, MUCKER LEVELS, individual prim entries for more details. There is no help for "w5 prims"
Comments