All Projects → lostutils → suex

lostutils / suex

Licence: MIT license
execute commands as another user

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to suex

ssu
Extremely simple su utility
Stars: ✭ 56 (+43.59%)
Mutual labels:  sudo, doas
ansible-role-admin-users
Ansible role to manage admin users, authorized keys and sudo access.
Stars: ✭ 18 (-53.85%)
Mutual labels:  sudo
Elevate
Python library for requesting root privileges
Stars: ✭ 74 (+89.74%)
Mutual labels:  sudo
fakesudo
sudo almost as fake as your ma
Stars: ✭ 15 (-61.54%)
Mutual labels:  sudo
Ansible Role Bootstrap
Prepare your system to be managed by Ansible.
Stars: ✭ 106 (+171.79%)
Mutual labels:  sudo
getroot
🛠️ Tool to bypass my school's security system to get sudo privileges on MacOS
Stars: ✭ 34 (-12.82%)
Mutual labels:  sudo
Sudo rails
🔒 Sudo mode for your Rails controllers
Stars: ✭ 66 (+69.23%)
Mutual labels:  sudo
ubuntu-vnc-xfce-g3
Headless Ubuntu/Xfce containers with VNC/noVNC (Generation 3)
Stars: ✭ 83 (+112.82%)
Mutual labels:  sudo
please
please, a sudo clone
Stars: ✭ 40 (+2.56%)
Mutual labels:  sudo
sudosh
Shell wrapper to run a login shell with `sudo` as the current user for the purpose of audit logging
Stars: ✭ 87 (+123.08%)
Mutual labels:  sudo
Suda.vim
🥪 An alternative sudo.vim for Vim and Neovim, limited support sudo in Windows
Stars: ✭ 247 (+533.33%)
Mutual labels:  sudo
Awesome Terminal Commands
An awesome resource listing and explaining various commonly used *nix commands
Stars: ✭ 109 (+179.49%)
Mutual labels:  sudo
Mis-Comandos-Linux
📋 Lista descrita de mis 💯 comandos favoritos ⭐ en GNU/Linux 💻
Stars: ✭ 28 (-28.21%)
Mutual labels:  sudo
Castle Winbuntu
Homesick Castle for use on WSL.
Stars: ✭ 87 (+123.08%)
Mutual labels:  sudo
become-root
minimal tool for creating a new user namespace with multiple UIDs/GIDs mapped inside
Stars: ✭ 33 (-15.38%)
Mutual labels:  sudo
Gtfonow
Automatic privilege escalation for misconfigured capabilities, sudo and suid binaries
Stars: ✭ 68 (+74.36%)
Mutual labels:  sudo
Sudo
Order bash to do things by shouting.
Stars: ✭ 155 (+297.44%)
Mutual labels:  sudo
octopkg
A Qt-based pkgng (BSD) front end
Stars: ✭ 33 (-15.38%)
Mutual labels:  doas
go-gtfo
gtfo, now with the speed of golang
Stars: ✭ 59 (+51.28%)
Mutual labels:  sudo
paternoster
Paternoster allows you to run Ansible playbooks like ordinary Python or Bash scripts.
Stars: ✭ 121 (+210.26%)
Mutual labels:  sudo

suex
Switch User Execute

A complete re-implementation of OpenBSD's doas that's extremely more robust

doas is a utility that is aimed to replace sudo for most ordinary use cases. Ted Unagst's, an OpenBSD developer, explained why He originally wrote it in his blog post: doas - dedicated openbsd application subexecutor.

The gist is that sudo is hard to configure and does a lot more then the standard user needs.

doas was created in order to replace sudo for regular folks like me and you.

Coverity Scan Build Status fedora copr build Status

Why Another Port?

doas only targets OpenBSD, and lacked features that I felt were missing from it and sudo as well.
Furthermore, all ports I looked at weren't production ready & poorly written.

Instead of creating my own port, I decided to re-write doas and create a new version that fixes the issues I care about.

Project Goals

  • Secure. User's must not be able to abuse the utility, and it should protect the user from making stupid mistakes.

  • Easy. The utility should be easy to audit, to maintain, to extend and to contribute to.

  • Friendly. Rule creation should be straight forward. Rule should be easy to understand and easy to debug.

  • Powerful. Rules should be short, concise and allow find-grained control.

  • Feature Parity. This project should have complete feature parity with the original utility.

To achieve these goals, the following design decisions were made:

  1. The whole project was implemented in modern C++
  2. Explicit is better then implicit (for instance, rule commands must be absolute paths)
  3. Prefer using the standard library when possible - for the sake of security and maintainability.
  4. Commands are globs, which allows to use the same rule for many executables.
  5. Arguments are PCRE-compliant regular expressions, which allows to create fine-grained rules.

Getting started

pre-compiled .deb and .rpm packages are uploaded on each release.

Fedora

The project is currently available in a Copr:

$ sudo dnf copr enable odedlaz/suex
$ sudo dnf install -y suex

You can also build it from source:

$ git clone https://github.com/odedlaz/suex.git
$ sudo dnf install -y cmake pam-devel elfutils-devel rubygem-ronn gcc-c++
$ mkdir -p suex/build && cd suex/build && cmake .. && cd ..

Ubuntu

The project has a pre-compiled deb available at the release page.

You can also build it from source:

$ git clone https://github.com/odedlaz/suex.git
$ sudo apt install -y cmake libpam-dev libdw-dev ruby-ronn g++ rpm
$ mkdir -p suex/build && cd suex/build && cmake .. && cd ..

[!] A PPA is coming soon.

Arch

[!] coming soon...

Project Status

The project is in beta and will be until it reaches the 1.0 milestone.
I don't expect any major features to be added until then.

In order to reach 1.0 the project must:

  1. get a good-enough unit & system test coverage.
  2. pass a professional security audit.
  3. have a continuous test & integration pipeline.
  4. be available on major client distributions, i.e: Ubuntu, Fedora, Arch
  5. have both an faq & examples page that have quality enough content in them

Authors

The main author is Oded Lazar

Contributions

I gladly accept contributions via GitHub pull requests.

If you are interested in contributing but not sure where to start, feel free to contact me.

Once I feel this method is not effective anymore, I'll probably open a slack / irc channel.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].