# OAR 2.6 documentation

## Security aspects

In OAR, security and user switching is managed by the “oardodo” command. It is a suid binary which can be executed only by root and the oar group members that is used to launch a command, a terminal or a script with the privileges of a particular user. When “oardodo” is called, it checks the value of an environment variable: `OARDO_BECOME_USER`.

> - If this variable is empty, “oardodo” will execute the command with the privileges of the superuser (root).

> - Else, this variable contains the name of the user that will be used to execute the command.

Here are the scripts/modules where “oardodo” is called and which user is used during this call:

> - OAR::Modules::Judas: this module is used for logging and notification.

>   - user notification: email or command execution. OARDO_BECOME_USER = user

> - oarsub: this script is used for submitting jobs or reservations.

>   - read user script

>   - connection to the job and the remote shell

>   - keys management

>   - job key export

>   for all these functions, the user used in the OARDO_BECOME_USER variable is the user that submits the job.

> - pingchecker: this module is used to check resources health. Here, the user is root.

> - oarexec: executed on the first reserved node, oarexec executes the job prologue and initiate the job.

>   - the “clean” method kills every oarsub connection process in superuser mode

>   - “kill_children” method kills every child of the process in superuser mode

>   - execution of a passive job in user mode

>   - getting of the user shell in user mode

>   - checkpointing in superuser mode

> - job_resource_manager: The job_resource_manager script is a perl script that oar server deploys on nodes to manage cpusets, users, job keys…

>   - cpuset creation and clean is executed in superuser mode

> - oarsh_shell: shell program used with the oarsh script. It adds its own process in the cpuset and launches the shell or the script of the user.

>   - cpuset filling, “nice” and display management are executed as root.

>   - TTY login is executed as user.

> - oarsh: oar’s ssh wrapper to connect from node to node. It contains all the context variables usefull for this connection.

>   - display management and connection with a user job key file are executed

>       as user.