mirror of
https://github.com/troglobit/finit.git
synced 2026-11-09 16:21:24 +00:00
plugins: bootmisc: refactor, use mksubys() and simplify
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
46995fe446
commit
1fd45c6f2e
1 file changed
+16
-29
+16
-29
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user