commit fabe6a5
default
·
2023-02-07 08:01:57 +0000 UTC
parent b8b0b96
Tweaked user and group permissions for new files and dirs.
M
data.c
+2,
-2
1@@ -88,7 +88,7 @@ int srv_open(char *basedir, int auto_upgrade)
2
3 /* create the queue/ subdir, just in case */
4 xs *qdir = xs_fmt("%s/queue", srv_basedir);
5- mkdir(qdir, 0755);
6+ mkdir(qdir, DIR_PERM);
7
8 #ifdef __OpenBSD__
9 char *v = xs_dict_get(srv_config, "disable_openbsd_security");
10@@ -434,7 +434,7 @@ d_char *_object_fn_by_md5(const char *md5)
11 {
12 xs *bfn = xs_fmt("%s/object/%c%c", srv_basedir, md5[0], md5[1]);
13
14- mkdir(bfn, 0755);
15+ mkdir(bfn, DIR_PERM);
16
17 return xs_fmt("%s/%s.json", bfn, md5);
18 }
M
main.c
+5,
-0
1@@ -8,6 +8,8 @@
2
3 #include "snac.h"
4
5+#include <sys/stat.h>
6+
7 int usage(void)
8 {
9 printf("snac " VERSION " - A simple, minimalistic ActivityPub instance\n");
10@@ -55,6 +57,9 @@ int main(int argc, char *argv[])
11 int argi = 1;
12 snac snac;
13
14+ /* ensure group has write access */
15+ umask(0007);
16+
17 if ((cmd = GET_ARGV()) == NULL)
18 return usage();
19
M
snac.c
+1,
-1
1@@ -149,7 +149,7 @@ void srv_archive(const char *direction, xs_dict *req,
2 xs *dir = xs_fmt("%s/archive/%s_%s", srv_basedir, date, direction);
3 FILE *f;
4
5- if (mkdir(dir, 0755) != -1) {
6+ if (mkdir(dir, DIR_PERM) != -1) {
7 xs *meta_fn = xs_fmt("%s/_META", dir);
8
9 if ((f = fopen(meta_fn, "w")) != NULL) {
M
snac.h
+2,
-0
1@@ -5,6 +5,8 @@
2
3 #define USER_AGENT "snac/" VERSION
4
5+#define DIR_PERM 02770
6+
7 extern double disk_layout;
8 extern d_char *srv_basedir;
9 extern d_char *srv_config;
+5,
-5
1@@ -36,7 +36,7 @@ int snac_upgrade(xs_str **error)
2 else
3 if (f < 2.1) {
4 xs *dir = xs_fmt("%s/object", srv_basedir);
5- mkdir(dir, 0755);
6+ mkdir(dir, DIR_PERM);
7
8 nf = 2.1;
9 }
10@@ -61,7 +61,7 @@ int snac_upgrade(xs_str **error)
11 xs *dir = xs_fmt("%s/object/%c%c", srv_basedir, b[0], b[1]);
12 xs *nfn = xs_fmt("%s/%s", dir, b);
13
14- mkdir(dir, 0755);
15+ mkdir(dir, DIR_PERM);
16 rename(fn, nfn);
17 }
18
19@@ -88,7 +88,7 @@ int snac_upgrade(xs_str **error)
20 xs *dir = xs_fmt("%s/hidden", snac.basedir);
21
22 /* create the hidden directory */
23- mkdir(dir, 0755);
24+ mkdir(dir, DIR_PERM);
25
26 /* rename all muted files incorrectly named .json */
27 xs *spec = xs_fmt("%s/muted/" "*.json", snac.basedir);
28@@ -117,10 +117,10 @@ int snac_upgrade(xs_str **error)
29
30 if (user_open(&snac, v)) {
31 xs *dir = xs_fmt("%s/public", snac.basedir);
32- mkdir(dir, 0755);
33+ mkdir(dir, DIR_PERM);
34
35 dir = xs_replace_i(dir, "public", "private");
36- mkdir(dir, 0755);
37+ mkdir(dir, DIR_PERM);
38
39 user_free(&snac);
40 }
M
utils.c
+6,
-6
1@@ -143,19 +143,19 @@ int snac_init(const char *basedir)
2 }
3 }
4
5- if (mkdir(srv_basedir, 0755) == -1) {
6+ if (mkdir(srv_basedir, 0775) == -1) {
7 printf("ERROR: cannot create directory '%s'\n", srv_basedir);
8 return 1;
9 }
10
11 xs *udir = xs_fmt("%s/user", srv_basedir);
12- mkdir(udir, 0755);
13+ mkdir(udir, DIR_PERM);
14
15 xs *odir = xs_fmt("%s/object", srv_basedir);
16- mkdir(odir, 0755);
17+ mkdir(odir, DIR_PERM);
18
19 xs *qdir = xs_fmt("%s/queue", srv_basedir);
20- mkdir(qdir, 0755);
21+ mkdir(qdir, DIR_PERM);
22
23 xs *gfn = xs_fmt("%s/greeting.html", srv_basedir);
24 if ((f = fopen(gfn, "w")) == NULL) {
25@@ -243,7 +243,7 @@ int adduser(const char *uid)
26
27 xs *basedir = xs_fmt("%s/user/%s", srv_basedir, uid);
28
29- if (mkdir(basedir, 0755) == -1) {
30+ if (mkdir(basedir, DIR_PERM) == -1) {
31 printf("ERROR: cannot create directory '%s'\n", basedir);
32 return 0;
33 }
34@@ -256,7 +256,7 @@ int adduser(const char *uid)
35
36 for (n = 0; dirs[n]; n++) {
37 xs *d = xs_fmt("%s/%s", basedir, dirs[n]);
38- mkdir(d, 0755);
39+ mkdir(d, DIR_PERM);
40 }
41
42 xs *scssfn = xs_fmt("%s/style.css", srv_basedir);