rdo/README.md

83 lines
2 KiB
Markdown
Raw Normal View History

# RootDO [![AUR](https://img.shields.io/aur/version/rdo.svg)](https://aur.archlinux.org/packages/rdo/)
2021-07-13 21:33:12 +02:00
This little "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](https://aur.archlinux.org/packages/rdo/).
If you are using any other linux distro, you can build it yourself by following these instructions:
2021-07-13 21:33:12 +02:00
```sh
2021-07-13 21:34:38 +02:00
git clone https://codeberg.org/sw1tchbl4d3/rdo
2021-07-13 21:33:12 +02:00
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.
2021-07-13 21:33:12 +02:00
After that you're good to go!
And to uninstall:
```sh
sudo make uninstall
```
### Usage
```sh
rdo [command]
```
2021-07-15 12:44:44 +02:00
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.
2021-07-15 12:44:44 +02:00
### Dependencies
2021-07-15 14:45:21 +02:00
- `libbsd`
### Benchmarks
The benchmark: Execute `whoami` 1000 times.
|Program|Time|
--- | ---
sudo | 13.62s
opendoas | 7.60s
rdo | 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:
```sh
#!/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.