1
0
Fork 0
forked from soccera/rdo
fixed parsing vulnerability rdo
Find a file
sw1tchbl4d3 6e02a05f10 Update benchmarks
You may wonder why the benchmark times overall increased, on a
seemingly better processor.
That is most likely because the single core performance of the
FX series is worse than the single core performance of the Intel laptop
processor I benchmarked on before.
2022-03-08 18:10:57 +01:00
.gitignore First Commit 2021-07-13 21:33:12 +02:00
LICENSE First Commit 2021-07-13 21:33:12 +02:00
Makefile Remove LSAN from the debug build 2022-03-08 16:51:04 +01:00
rdo.c Push version to 1.4 2022-03-08 17:35:03 +01:00
rdo_sample.conf Add groups support 2022-03-08 17:32:53 +01:00
README.md Update benchmarks 2022-03-08 18:10:57 +01:00
sessions.h Add groups support 2022-03-08 17:32:53 +01:00

RootDO AUR

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:

group=wheel
wrong_pw_sleep=1000
session_ttl=5
  • group: The group of users that is allowed to execute rdo.
  • 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.

Yes, this is a silly benchmark. Yes, the performance gain in real world application is close to nothing.

But it's fun!

Program Time
sudo 1.9.9 22.12s
opendoas 6.8.2 13.5s
rdo 1.4 3.5s
Baseline 2.1s

Baseline here is how long it took without any wrapper to make it root.

These benchmarks were done on a single core of an AMD FX-8350 processor, on Artix Linux version 5.16.12-zen1-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.