DESCRIPTION¶
Validate the execution of a privileged operation. op denotes the requested operation, who is the object requesting the operation (file_name or object pointer), arg and arg2 are additional arguments, depending on the operation.
The function should return >0 to grant the privilege, 0 to indicate that the caller was probably misled and the error might be fixed, and anything else to indicate a real violation that will be handled as run time error.
The privileged operations are:
- attach_erq_demon
- Attach the erq demon to object argwith flagarg2.
- bind_lambda
- Bind a lambda-closure to object arg.
- call_out_info
- Return an array with all call_out informations.
- configure_interactive
- Set option arg2with valuearg3as default (arg==0) or for objectarg.
- configure_driver
- Set option arg1to value(s)arg2.
- enable_telnet
- Enable/disable telnet (arg2) for objectarg.
- execute_command
- Execute command string arg2for the objectarg.
- erq
- At the request arg2is to be sent to the erq-demon by the objectwho.
- garbage_collection
- Object whocalls thegarbage_collection(E) withargas filename andarg2as flag.
- input_to
- Object whoredirects the next input from commandgiverarg, usingarg2as value for the flags. This is used for flag values including the ‘no bang’ option.
- limited
- Execute argwith reduced/changed limitsarg2(as return byquery_limits(E)).
- mysql
- Object whoattempted to execute mySQL efunarg.
- pgsql
- Object whoattempted to execute Postgres efunarg.
- net_connect
- Attempt to open a connection to host arg, portarg2.
- nomask simul_efun
- Attempt to get an efun argvia efun:: when it is shadowed by a nomask type simul_efun.
- rename_object
- The object whotries to rename the objectargto the namearg2.
- send_udp
- Send UDP-data to host arg.
- get_extra_wizinfo
- Get the additional wiz-list info for user arg.
- set_extra_wizinfo
- Set the additional wiz-list info for user arg.
- set_extra_wizinfo_size
- Set the size of the additional user info in the wiz-list to arg.
- set_driver_hook
- Set hook argtoarg2.
- set_limits
- Set limits to arg(as returned byquery_limits(E)).
- set_max_commands
- Set the max. number of commands interactive object argcan issue per second toarg2.
- set_this_object
- Set this_object()toarg.
- shadow_add_action
- Add an action to function arg2of objectargfrom the shadowwhowhich is shadowingarg.
- shutdown
- Object whocalls the efun shutdown withargas argument.
- sqlite_pragma
- Execute pragma statement in SQLite.
- symbol_variable
- Attempt to make a symbol from a hidden inherited variable. argis the object in question,arg2the number of the variable in the variable table.
- variable_list
- An attempt to return the variable values of object argis made from a different objectwho.
- wizlist_info
- Return an array with all wiz-list information.
call_out_info(E) can return the arguments to functions and lambda closures to be called by call_out(E); you should consider that read access to closures, mappings and arrays means write access and/or other privileges. wizlist_info(E) will return an array which holds, among others, the extra wizlist field. While a toplevel array, if found, will be copied, this does not apply to nested arrays or to any mappings. You might also have some sensitive closures there. send_udp(E) should be watched as it could be abused. The xxx_extra_wizinfo operations are necessary for a proper wizlist and should therefore be restricted to admins. All other operations are potential sources for direct security breaches - any use of them should be scrutinized closely.
HISTORY¶
- changed (3.2.10) – added the “enable_telnet”, “net_connect”, “set_max_commands” and “variable_list” violations.
- changed (3.3.563) – added the passing of the limits to the “limited” and “set_limits”.
- changed (3.2.11/3.3.640) – added the “mysql” violation.
- changed (3.3.717) – added the “sqlite_pragma” violation.