From e7225b64469b6ada187764ee9f663ad1039f20b0 Mon Sep 17 00:00:00 2001 From: "Kelvin M. Klann" Date: Fri, 14 Jul 2023 04:23:58 -0300 Subject: feature: add doas support in firecfg and jailcheck Closes #5899. Suggested-by: @shaggonit --- src/firecfg/main.c | 5 ++++- src/jailcheck/main.c | 2 +- src/jailcheck/utils.c | 5 ++++- src/man/firecfg.1.in | 4 +++- src/man/jailcheck.1.in | 5 ++--- 5 files changed, 14 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/firecfg/main.c b/src/firecfg/main.c index a6cae995e..4ec81c5b3 100644 --- a/src/firecfg/main.c +++ b/src/firecfg/main.c @@ -289,7 +289,10 @@ static void set_links_homedir(const char *homedir) { } static const char *get_sudo_user(void) { - const char *user = getenv("SUDO_USER"); + const char *doas_user = getenv("DOAS_USER"); + const char *sudo_user = getenv("SUDO_USER"); + const char *user = doas_user ? doas_user : sudo_user; + if (!user) { user = getpwuid(getuid())->pw_name; if (!user) { diff --git a/src/jailcheck/main.c b/src/jailcheck/main.c index 93d334c7a..6cc5cf904 100644 --- a/src/jailcheck/main.c +++ b/src/jailcheck/main.c @@ -86,7 +86,7 @@ int main(int argc, char **argv) { // user setup if (getuid() != 0) { - fprintf(stderr, "Error: you need to be root (via sudo) to run this program\n"); + fprintf(stderr, "Error: you need to be root (via sudo or doas) to run this program\n"); exit(1); } user_name = get_sudo_user(); diff --git a/src/jailcheck/utils.c b/src/jailcheck/utils.c index 97fe8833b..930820604 100644 --- a/src/jailcheck/utils.c +++ b/src/jailcheck/utils.c @@ -26,7 +26,10 @@ #define BUFLEN 4096 char *get_sudo_user(void) { - char *user = getenv("SUDO_USER"); + char *doas_user = getenv("DOAS_USER"); + char *sudo_user = getenv("SUDO_USER"); + char *user = doas_user ? doas_user : sudo_user; + if (!user) { user = getpwuid(getuid())->pw_name; if (!user) { diff --git a/src/man/firecfg.1.in b/src/man/firecfg.1.in index 42add6a41..a85fbc5da 100644 --- a/src/man/firecfg.1.in +++ b/src/man/firecfg.1.in @@ -23,7 +23,9 @@ The integration covers: - programs started by clicking on file icons in file manager - only Cinnamon, KDE, LXDE/LXQT, MATE and XFCE desktop managers are supported in this moment .RE - +.PP +Note: The examples use \fBsudo\fR, but \fBdoas\fR is also supported. +.PP To set it up, run "sudo firecfg" after installing Firejail software. The same command should also be run after installing new programs. If the program is supported by Firejail, the symbolic link in /usr/local/bin diff --git a/src/man/jailcheck.1.in b/src/man/jailcheck.1.in index e889ea91b..eea5987b7 100644 --- a/src/man/jailcheck.1.in +++ b/src/man/jailcheck.1.in @@ -24,9 +24,8 @@ them from inside the sandbox. \fB5. Seccomp test .TP \fB6. Networking test -.TP -The program is started as root using sudo. - +.PP +The program should be started using \fBsudo\fR or \fBdoas\fR. .SH OPTIONS .TP \fB\-\-debug -- cgit v1.2.3-54-g00ecf