diff options
author | smitsohu <smitsohu@gmail.com> | 2018-11-10 14:57:26 +0100 |
---|---|---|
committer | smitsohu <smitsohu@gmail.com> | 2018-11-10 14:57:26 +0100 |
commit | ff6612fac86e1a79ba264167f0263ff12f62f346 (patch) | |
tree | 3bccb3d20014beaf146da715b6955eabbacfe8f0 | |
parent | Fixes for brave browser (diff) | |
download | firejail-ff6612fac86e1a79ba264167f0263ff12f62f346.tar.gz firejail-ff6612fac86e1a79ba264167f0263ff12f62f346.tar.zst firejail-ff6612fac86e1a79ba264167f0263ff12f62f346.zip |
unreadable firejail.users database fixes
run firecfg with umask 022 and print a diagnostic message if
the database is not readable.
closes #2225
-rw-r--r-- | src/firecfg/main.c | 3 | ||||
-rw-r--r-- | src/lib/firejail_user.c | 11 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/firecfg/main.c b/src/firecfg/main.c index 810af6ff2..b1a3b7427 100644 --- a/src/firecfg/main.c +++ b/src/firecfg/main.c | |||
@@ -316,6 +316,9 @@ int main(int argc, char **argv) { | |||
316 | int i; | 316 | int i; |
317 | int bindir_set = 0; | 317 | int bindir_set = 0; |
318 | 318 | ||
319 | // set umask | ||
320 | umask(022); | ||
321 | |||
319 | // user setup | 322 | // user setup |
320 | char *user = get_user(); | 323 | char *user = get_user(); |
321 | assert(user); | 324 | assert(user); |
diff --git a/src/lib/firejail_user.c b/src/lib/firejail_user.c index b270db459..03aaa3b4e 100644 --- a/src/lib/firejail_user.c +++ b/src/lib/firejail_user.c | |||
@@ -119,9 +119,13 @@ int firejail_user_check(const char *name) { | |||
119 | } | 119 | } |
120 | 120 | ||
121 | FILE *fp = fopen(fname, "r"); | 121 | FILE *fp = fopen(fname, "r"); |
122 | if (!fp) { | ||
123 | fprintf(stderr, "Error: cannot open %s for reading. " | ||
124 | "See \"man firejail-users\" for more information about this file.\n", fname); | ||
125 | perror("fopen"); | ||
126 | exit(1); | ||
127 | } | ||
122 | free(fname); | 128 | free(fname); |
123 | if (!fp) | ||
124 | return 0; | ||
125 | 129 | ||
126 | char buf[MAXBUF]; | 130 | char buf[MAXBUF]; |
127 | while (fgets(buf, MAXBUF, fp)) { | 131 | while (fgets(buf, MAXBUF, fp)) { |
@@ -165,8 +169,9 @@ void firejail_user_add(const char *name) { | |||
165 | return; | 169 | return; |
166 | } | 170 | } |
167 | } | 171 | } |
172 | else | ||
173 | printf("Creating %s\n", fname); | ||
168 | 174 | ||
169 | printf("%s created\n", fname); | ||
170 | FILE *fp = fopen(fname, "a+"); | 175 | FILE *fp = fopen(fname, "a+"); |
171 | if (!fp) { | 176 | if (!fp) { |
172 | fprintf(stderr, "Error: cannot open %s\n", fname); | 177 | fprintf(stderr, "Error: cannot open %s\n", fname); |