The variable name was misleading, as we didn't calculate the time to sleep in milliseconds, but in microseconds. |
||
---|---|---|
.gitignore | ||
LICENSE | ||
Makefile | ||
rdo.c | ||
rdo_sample.conf | ||
README.md | ||
sessions.h |
RootDO 
This project aims to be a very slim alternative to both sudo and doas.
Installation
If you are on Arch Linux, you can download the package via the AUR.
If you are using any other linux distro, or want to build it yourself, you will first need to install either libbsd
or libbsd-dev
, depending on how your package manager calls it.
Then, you can clone and build rdo with the following set of commands:
git clone https://codeberg.org/sw1tchbl4d3/rdo
cd rdo
make
sudo make install
After that, you'll have to configure rdo to allow you to use it.
To do this, edit /etc/rdo.conf
, and set the username variable to your own.
Then you're good to go!
To uninstall:
sudo make uninstall
Usage
rdo [command]
The configuration file has the following variables:
username=sw1tchbl4d3
wrong_pw_sleep=1000
session_ttl=5
username
: The username of the user that is allowed to execute rdo (no multi user or group support (yet)).wrong_pw_sleep
: The amount of milliseconds to sleep at a wrong password attempt. Must be a positive integer. Set to 0 to disable.session_ttl
: The amount of minutes a session lasts. Must be a positive integer. Set to 0 to disable.
Benchmarks
The benchmark: Execute whoami
(GNU coreutils 8.32) 1000 times.
Program | Time |
---|---|
sudo 1.9.7p1 | 13.62s |
opendoas 6.8.1 | 7.60s |
rdo 1.2 | 2.25s |
Baseline | 1.43s |
Baseline here is how long it took without any wrapper to make it root.
These benchmarks were done on a single core of an Intel i3-3110M
Laptop processor, on Artix Linux version 5.13.4-zen2-1-zen
.
sudo
and opendoas
were pulled from the pacman repos, rdo via AUR.
All configs were kept as default, except allow the wheel
group on both + enable persist
on doas.
Script used:
#!/bin/sh
$1 whoami
current=$(date +%s.%N)
for i in {1..1000}; do
$1 whoami 2>&1 >/dev/null
done
done=$(date +%s.%N)
echo $done - $current | bc
The script requires bc
to be installed, for floating point arithmetics.