plugins: bootmisc: refactor, use mksubys() and simplify

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg committed 2021-03-13 09:26:14 +01:00
1 parent 46995fe446
commit 1fd45c6f2e
1 file changed
+16 -29
+16 -29
View File
@@ -99,8 +99,6 @@ static void bootclean(void)
*/ */
static void setup(void *arg) static void setup(void *arg)
{ {
int uid, gid;
/* Cleanup stale files, if any still linger on. */ /* Cleanup stale files, if any still linger on. */
bootclean(); bootclean();
@@ -133,19 +131,21 @@ static void setup(void *arg)
makedir("/var/tmp", 0755); makedir("/var/tmp", 0755);
makedir("/var/empty", 0755); makedir("/var/empty", 0755);
/*
* If /etc/group or "utmp" group is missing,
* default to "root"/"wheel" group
*/
_d("Setting up necessary UTMP files ...");
gid = getgroup("utmp");
if (gid < 0)
gid = 0;
/* /*
* UTMP actually needs multiple db files * UTMP actually needs multiple db files
*/ */
if (has_utmp()) { if (has_utmp()) {
int gid;
/*
* If /etc/group or "utmp" group is missing, default to
* "root", or "wheel", group.
*/
_d("Setting up necessary UTMP files ...");
gid = getgroup("utmp");
if (gid < 0)
gid = 0;
create("/var/run/utmp", 0644, 0, gid); /* Currently logged in */ create("/var/run/utmp", 0644, 0, gid); /* Currently logged in */
create("/var/log/wtmp", 0644, 0, gid); /* Login history */ create("/var/log/wtmp", 0644, 0, gid); /* Login history */
create("/var/log/btmp", 0600, 0, gid); /* Failed logins */ create("/var/log/btmp", 0600, 0, gid); /* Failed logins */
@@ -165,30 +165,17 @@ static void setup(void *arg)
makedir("/var/run/network",0755); /* Needed by Debian/Ubuntu ifupdown */ makedir("/var/run/network",0755); /* Needed by Debian/Ubuntu ifupdown */
makedir("/var/run/lldpd", 0755); /* Needed by lldpd */ makedir("/var/run/lldpd", 0755); /* Needed by lldpd */
makedir("/var/run/pluto", 0755); /* Needed by Openswan */ makedir("/var/run/pluto", 0755); /* Needed by Openswan */
makedir("/var/run/quagga", 0755); /* Needed by Quagga */ mksubsys("/var/run/quagga", 0755, "quagga", "quagga");
makedir("/var/log/quagga", 0755); /* Needed by Quagga */ mksubsys("/var/log/quagga", 0755, "quagga", "quagga");
makedir("/var/run/frr", 0755); /* Needed by FRR */ mksubsys("/var/run/frr", 0755, "frr", "frr");
makedir("/var/log/frr", 0755); /* Needed by FRR */ mksubsys("/var/log/frr", 0755, "frr", "frr");
makedir("/var/run/sshd", 01755); /* OpenSSH */ makedir("/var/run/sshd", 01755); /* OpenSSH */
gid = getgroup("tty");
if (gid < 0)
gid = 0;
makefifo("/dev/xconsole", 0640); /* sysklogd */
chown("/dev/xconsole", 0, gid);
if (!fexist("/etc/mtab")) if (!fexist("/etc/mtab"))
symlink("../proc/self/mounts", "/etc/mtab"); symlink("../proc/self/mounts", "/etc/mtab");
/* Void Linux has a uuidd that runs as uuid:uuid and needs /run/uuid */ /* Void Linux has a uuidd that runs as uuid:uuid and needs /run/uuid */
uid = getuser("uuidd", NULL); mksubsys("/var/run/uuidd", 0755, "uuidd", "uuidd");
if (uid >= 0) {
gid = getgroup("uuidd");
if (gid < 0)
gid = 0;
makedir("/var/run/uuidd", 0755);
chown("/var/run/uuidd", uid, gid);
}
umask(022); umask(022);
} }