Skip to content

Commit 738c5e2

Browse files
committed
Add systemd and nolimit group
1 parent 10b9b41 commit 738c5e2

2 files changed

Lines changed: 21 additions & 5 deletions

File tree

src/executor/docker.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ class DockerExecutor {
4141
"--add-subgids", "100000-165535", user]);
4242
await spawnSudoUtil("SHELL_SUDO", ["root",
4343
"loginctl", "enable-linger", user]);
44-
return "Updated for docker";
44+
await spawnSudoUtil("SHELL_SUDO", ["root",
45+
"gpasswd", "--add", user, "nolimit"]);
46+
return "Updated for docker/systemd";
4547
});
4648
}
4749
/**
@@ -57,7 +59,9 @@ class DockerExecutor {
5759
"--del-subgids", "100000-165535", user]);
5860
await spawnSudoUtil("SHELL_SUDO", ["root",
5961
"loginctl", "disable-linger", user]);
60-
return "Updated for docker";
62+
await spawnSudoUtil("SHELL_SUDO", ["root",
63+
"gpasswd", "--remove", user, "nolimit"]);
64+
return "Updated for docker/systemd";
6165
});
6266
}
6367
/**

src/executor/runner.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ export default async function runConfig(payload) {
469469
await virtExec("fix-domain-permissions", {
470470
domain,
471471
'subservers': true,
472-
});
472+
});
473473
await writeLog((await spawnSudoUtil("SHELL_SUDO", [user,
474474
"chmod", "-R", "750", domaindata['Home directory']
475475
])).stdout);
@@ -506,7 +506,7 @@ export default async function runConfig(payload) {
506506
break;
507507
case 'docker':
508508
if (value === '' || value === 'on') {
509-
await writeLog("$> Enabling docker features");
509+
await writeLog("$> Enabling docker + systemd features");
510510
await writeLog(await dockerExec.enableDocker(domaindata['Username']));
511511
await sshExec(`mkdir -p ~/.config/docker ~/.config/systemd/user/docker.service.d`, false);
512512
await sshExec(`[[ -z $DOCKER_HOST ]] && echo "export DOCKER_HOST=unix:///run/user/\\$(id -u)/docker.sock" >> ~/.bashrc`);
@@ -527,14 +527,26 @@ export default async function runConfig(payload) {
527527
await writeLog("Can't perform " + key + " feature because it is denied");
528528
break;
529529
} else if (value === 'off') {
530-
await writeLog("$> Disabling docker features");
530+
await writeLog("$> Disabling docker + systemd features");
531531
await sshExec(`dockerd-rootless-setuptool.sh uninstall --skip-iptables`);
532532
await sshExec(`sed -i '/DOCKER_HOST=/d' ~/.bashrc`);
533533
await sshExec(`rm -rf ~/.config/docker`);
534534
await sshExec(`rootlesskit rm -rf ~/.local/share/docker`);
535535
await writeLog(await dockerExec.disableDocker(domaindata['Username']));
536536
}
537537
break;
538+
case 'systemd':
539+
if (value === '' || value === 'on') {
540+
await writeLog("$> Enabling systemd features");
541+
await writeLog(await dockerExec.enableDocker(domaindata['Username']));
542+
} else if (sandbox) {
543+
await writeLog("Can't perform " + key + " feature because it is denied");
544+
break;
545+
} else if (value === 'off') {
546+
await writeLog("$> Disabling systemd features");
547+
await writeLog(await dockerExec.disableDocker(domaindata['Username']));
548+
}
549+
break;
538550
default:
539551
await runConfigCodeFeatures(key, value, writeLog, domaindata, sshExec)
540552
}

0 commit comments

Comments
 (0)