aboutsummaryrefslogtreecommitdiffstats
path: root/src/firecfg/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/firecfg/main.c')
-rw-r--r--src/firecfg/main.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/firecfg/main.c b/src/firecfg/main.c
index 3f5921322..9a2efebd2 100644
--- a/src/firecfg/main.c
+++ b/src/firecfg/main.c
@@ -443,15 +443,33 @@ int main(int argc, char **argv) {
443 // set new symlinks based on /usr/lib/firejail/firecfg.cfg 443 // set new symlinks based on /usr/lib/firejail/firecfg.cfg
444 set_links_firecfg(); 444 set_links_firecfg();
445 445
446 // add user to firejail access database - only for root
447 if (getuid() == 0) { 446 if (getuid() == 0) {
447 // add user to firejail access database - only for root
448 printf("\nAdding user %s to Firejail access database in %s/firejail.users\n", user, SYSCONFDIR); 448 printf("\nAdding user %s to Firejail access database in %s/firejail.users\n", user, SYSCONFDIR);
449 // temporarily set the umask, access database must be world-readable 449 // temporarily set the umask, access database must be world-readable
450 mode_t orig_umask = umask(022); 450 mode_t orig_umask = umask(022);
451 firejail_user_add(user); 451 firejail_user_add(user);
452 umask(orig_umask); 452 umask(orig_umask);
453
454#ifdef HAVE_APPARMOR
455 // enable firejail apparmor profile
456 struct stat s;
457 if (stat("/sbin/apparmor_parser", &s) == 0) {
458 char *cmd;
459
460 // SYSCONFDIR points to /etc/firejail, we have to go on level up (..)
461 printf("\nLoading AppArmor profile\n");
462 if (asprintf(&cmd, "/sbin/apparmor_parser -r /etc/apparmor.d/firejail-default %s/../apparmor.d/firejail-default", SYSCONFDIR) == -1)
463 errExit("asprintf");
464 int rv = system(cmd);
465 (void) rv;
466 free(cmd);
467 }
468#endif
453 } 469 }
454 470
471
472
455 // set new symlinks based on ~/.config/firejail directory 473 // set new symlinks based on ~/.config/firejail directory
456 set_links_homedir(home); 474 set_links_homedir(home);
457 475