@appforge-ci/admin-cli 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lib/build-user.d.ts
CHANGED
|
@@ -13,12 +13,21 @@ import { BUILD_USER_NAME } from "@appforge-ci/agent/dist/lib/sandbox/build-user.
|
|
|
13
13
|
* 2. Adds the operator's OWN account to `_appforgebuild`'s group — not the reverse — so the AGENT can
|
|
14
14
|
* read back what the build user wrote (artifact staging, hygiene) without ever needing to BE that
|
|
15
15
|
* user; the build user never needs anything of the operator's.
|
|
16
|
-
* 3.
|
|
16
|
+
* 3. Grants `_appforgebuild` bare TRAVERSE (search only — no list, read or write) through the operator's
|
|
17
|
+
* home directory and through the cache root, via one narrow ACL entry on each (`chmod +a`, run as the
|
|
18
|
+
* operator — no sudo needed, since the operator already owns both). Both are privately permissioned
|
|
19
|
+
* by default (a macOS home directory; the cache root, see sandbox/cache.ts) and step 1 deliberately
|
|
20
|
+
* keeps the build user out of their group, so without this grant the build user cannot open ANYTHING
|
|
21
|
+
* by an absolute path under either, full stop — confirmed live against a real regulated build, where
|
|
22
|
+
* `sandbox-exec` itself could not open the very profile it had just been told to apply. "Search"
|
|
23
|
+
* lets it reach a path it already knows (the rendered profile; its own already-chowned org cache
|
|
24
|
+
* subdirectory) without being able to list what else is in either directory.
|
|
25
|
+
* 4. Writes the root-owned helper (packages/agent's `build-helper.sh.tmpl`, substituted with this Mac's
|
|
17
26
|
* real jobs/cache roots) to `/etc/appforge/build-helper.sh`, 0500 root:wheel.
|
|
18
|
-
*
|
|
27
|
+
* 5. Writes the pf anchor rules to `/etc/appforge/build-user.pf.conf`, 0600 root:wheel, and loads them
|
|
19
28
|
* once immediately (`pfctl -a ... -f ...`) so the Mac is protected right away, not just after the
|
|
20
29
|
* agent's next restart.
|
|
21
|
-
*
|
|
30
|
+
* 6. Appends (never replaces) exactly two lines to the EXISTING `/etc/sudoers.d/appforge-agent`
|
|
22
31
|
* (`infra/mac-mini-setup/bootstrap.sh`'s `REBOOT_HOST` line stays untouched) — one scoping the agent's
|
|
23
32
|
* user to run ONLY the fixed helper path as root, one scoping it to become ONLY `_appforgebuild`.
|
|
24
33
|
* Validated with `visudo -c` on a scratch copy BEFORE either line ever reaches the real file: a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-user.d.ts","sourceRoot":"","sources":["../../src/lib/build-user.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAMvG
|
|
1
|
+
{"version":3,"file":"build-user.d.ts","sourceRoot":"","sources":["../../src/lib/build-user.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAMvG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,eAAO,MAAM,gBAAgB,kBAAkB,CAAC;AAChD,eAAO,MAAM,aAAa,QAA+C,CAAC;AAC1E,eAAO,MAAM,YAAY,kCAAkC,CAAC;AAE5D,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,wFAAwF;IACxF,YAAY,IAAI,MAAM,CAAC;IACvB;;;;uCAImC;IACnC,aAAa,IAAI,MAAM,CAAC;IACxB,YAAY,IAAI,OAAO,CAAC;IACxB,6FAA6F;IAC7F,WAAW,IAAI,MAAM,CAAC;IACtB,gHAAgH;IAChH,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;yBACqB;IACrB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACtE,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,IAAI,MAAM,CAAC;IACjB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAyBD,eAAO,MAAM,wBAAwB,EAAE,oBA+CtC,CAAC;AAEF;;;;;;;;;kFASkF;AAClF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAM,EAAE,EAAE,SAAM,GAAG,MAAM,CAQ9E;AAED;;;2GAG2G;AAC3G,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAKjH;AAED;;iDAEiD;AACjD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjG;AAuFD;;oFAEoF;AACpF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,oBAA+C,GAAG,IAAI,CAYxH;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,EACvF,IAAI,GAAE,oBAA+C,GACpD,IAAI,CAmBN;AAGD,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/lib/build-user.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { execFileSync } from "node:child_process";
|
|
2
2
|
import { existsSync, unlinkSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { tmpdir } from "node:os";
|
|
3
|
+
import { homedir, tmpdir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { BUILD_HELPER_PATH, BUILD_USER_NAME } from "@appforge-ci/agent/dist/lib/sandbox/build-user.js";
|
|
6
6
|
import { BUILD_HELPER_SCRIPT_TEMPLATE } from "@appforge-ci/agent/dist/lib/sandbox/build-helper-script.generated.js";
|
|
@@ -21,12 +21,21 @@ import { cacheRootDir } from "@appforge-ci/agent/dist/lib/sandbox/cache.js";
|
|
|
21
21
|
* 2. Adds the operator's OWN account to `_appforgebuild`'s group — not the reverse — so the AGENT can
|
|
22
22
|
* read back what the build user wrote (artifact staging, hygiene) without ever needing to BE that
|
|
23
23
|
* user; the build user never needs anything of the operator's.
|
|
24
|
-
* 3.
|
|
24
|
+
* 3. Grants `_appforgebuild` bare TRAVERSE (search only — no list, read or write) through the operator's
|
|
25
|
+
* home directory and through the cache root, via one narrow ACL entry on each (`chmod +a`, run as the
|
|
26
|
+
* operator — no sudo needed, since the operator already owns both). Both are privately permissioned
|
|
27
|
+
* by default (a macOS home directory; the cache root, see sandbox/cache.ts) and step 1 deliberately
|
|
28
|
+
* keeps the build user out of their group, so without this grant the build user cannot open ANYTHING
|
|
29
|
+
* by an absolute path under either, full stop — confirmed live against a real regulated build, where
|
|
30
|
+
* `sandbox-exec` itself could not open the very profile it had just been told to apply. "Search"
|
|
31
|
+
* lets it reach a path it already knows (the rendered profile; its own already-chowned org cache
|
|
32
|
+
* subdirectory) without being able to list what else is in either directory.
|
|
33
|
+
* 4. Writes the root-owned helper (packages/agent's `build-helper.sh.tmpl`, substituted with this Mac's
|
|
25
34
|
* real jobs/cache roots) to `/etc/appforge/build-helper.sh`, 0500 root:wheel.
|
|
26
|
-
*
|
|
35
|
+
* 5. Writes the pf anchor rules to `/etc/appforge/build-user.pf.conf`, 0600 root:wheel, and loads them
|
|
27
36
|
* once immediately (`pfctl -a ... -f ...`) so the Mac is protected right away, not just after the
|
|
28
37
|
* agent's next restart.
|
|
29
|
-
*
|
|
38
|
+
* 6. Appends (never replaces) exactly two lines to the EXISTING `/etc/sudoers.d/appforge-agent`
|
|
30
39
|
* (`infra/mac-mini-setup/bootstrap.sh`'s `REBOOT_HOST` line stays untouched) — one scoping the agent's
|
|
31
40
|
* user to run ONLY the fixed helper path as root, one scoping it to become ONLY `_appforgebuild`.
|
|
32
41
|
* Validated with `visudo -c` on a scratch copy BEFORE either line ever reaches the real file: a
|
|
@@ -191,6 +200,35 @@ function ensureAgentUserInBuildGroup(agentUser, group, deps) {
|
|
|
191
200
|
deps.log(`\n==> Adding '${agentUser}' to '${group}' (so the agent can read back what the build user wrote: artifacts, hygiene)`);
|
|
192
201
|
deps.run("sudo", ["dseditgroup", "-o", "edit", "-a", agentUser, "-t", "user", group]);
|
|
193
202
|
}
|
|
203
|
+
/** Grants `user` bare TRAVERSE (not list, read or write) through the operator's home directory and
|
|
204
|
+
* through the cache root — both privately permissioned by default (0750 for a macOS home directory;
|
|
205
|
+
* 0700 for the cache root, see sandbox/cache.ts), and `user` is deliberately not a member of either
|
|
206
|
+
* directory's group (see `ensureBuildUserAccount`'s docblock). Without this, build-user mode cannot
|
|
207
|
+
* open ANYTHING by an absolute path under either at all: confirmed live against a real regulated build
|
|
208
|
+
* that `sandbox-exec` itself could not open the very profile it had just been told to apply, because
|
|
209
|
+
* reaching it runs through the home directory; separately, that the build user could not reach its own
|
|
210
|
+
* (already-chowned) org cache subdirectory through the cache root sitting above it.
|
|
211
|
+
*
|
|
212
|
+
* `allow search` is the ACL equivalent of the Unix "x without r" rule: it lets `user` reach a NAMED
|
|
213
|
+
* child it already knows the path to (the rendered sandbox profile under the jobs root; its own org
|
|
214
|
+
* subdirectory under the cache root) without being able to list what else is in either directory —
|
|
215
|
+
* confirmed live that `ls` of both directories is still refused for the build user after this runs.
|
|
216
|
+
* Neither directory's Unix mode, ownership, or write access changes.
|
|
217
|
+
*
|
|
218
|
+
* Only the home directory and the cache root need this: the jobs root and its own parent directory are
|
|
219
|
+
* world-traversable (0755) by default on every Mac checked so far, so granting it there too would be a
|
|
220
|
+
* harmless no-op — this only touches the two directories actually confirmed to block traversal, to keep
|
|
221
|
+
* the blast radius of a real ACL change on a production Mac as small as it can be.
|
|
222
|
+
*
|
|
223
|
+
* `chmod +a` with the exact same entry twice does not duplicate it (confirmed live), so unlike every
|
|
224
|
+
* other step in this file, this one has no separate "already there" check — it is safe, and cheap
|
|
225
|
+
* enough, to just run on every install. */
|
|
226
|
+
function ensureHomeAndCacheTraversable(user, cacheRoot, deps) {
|
|
227
|
+
deps.log(`\n==> Granting '${user}' bare traverse (search only — no list/read/write) through the home directory and the cache root`);
|
|
228
|
+
for (const dir of new Set([homedir(), cacheRoot])) {
|
|
229
|
+
deps.run("chmod", ["+a", `${user} allow search`, dir]);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
194
232
|
function ensureEtcDir(deps) {
|
|
195
233
|
if (!deps.etcDirExists()) {
|
|
196
234
|
deps.run("sudo", ["mkdir", "-m", "0755", APPFORGE_ETC_DIR]);
|
|
@@ -230,6 +268,7 @@ export function installBuildUser(opts = {}, deps = realBuildUserInstallDeps) {
|
|
|
230
268
|
const cacheRoot = opts.cacheRoot ?? cacheRootDir();
|
|
231
269
|
ensureBuildUserAccount(user, deps);
|
|
232
270
|
ensureAgentUserInBuildGroup(agentUser, user, deps);
|
|
271
|
+
ensureHomeAndCacheTraversable(user, cacheRoot, deps);
|
|
233
272
|
ensureEtcDir(deps);
|
|
234
273
|
ensureHelperScript(user, jobsRoot, cacheRoot, deps);
|
|
235
274
|
ensurePfRules(user, deps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-user.js","sourceRoot":"","sources":["../../src/lib/build-user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"build-user.js","sourceRoot":"","sources":["../../src/lib/build-user.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "../test-support/home-sandbox.js";
|
|
2
2
|
import { test } from "node:test";
|
|
3
3
|
import assert from "node:assert/strict";
|
|
4
|
+
import { homedir } from "node:os";
|
|
4
5
|
import { BUILD_HELPER_PATH, BUILD_USER_NAME } from "@appforge-ci/agent/dist/lib/sandbox/build-user.js";
|
|
5
6
|
import { BUILD_USER_PF_ANCHOR, pfRulesSha256, renderBuildUserPfRules } from "@appforge-ci/agent/dist/lib/sandbox/pf-rules.js";
|
|
6
7
|
import { APPFORGE_ETC_DIR, PF_RULES_FILE, SUDOERS_FILE, ensureSudoersLines, installBuildUser, nextFreeSystemId, renderBuildHelperScript, requiredSudoersLines, } from "./build-user.js";
|
|
@@ -104,6 +105,8 @@ test("installBuildUser creates the account, adds the agent user to its group, in
|
|
|
104
105
|
assert.ok(calls.some((c) => c.cmd === "sudo" && c.args.join(" ") === "dscl . -create /Users/_appforgebuild IsHidden 1"));
|
|
105
106
|
assert.ok(!calls.some((c) => c.args.includes("Password")), "no password entry is ever created for this account");
|
|
106
107
|
assert.ok(calls.some((c) => c.cmd === "sudo" && c.args.join(" ") === "dseditgroup -o edit -a tooming -t user _appforgebuild"));
|
|
108
|
+
assert.ok(calls.some((c) => c.cmd === "chmod" && c.args.join(" ") === `+a _appforgebuild allow search ${homedir()}`), "bare traverse grant on the home directory");
|
|
109
|
+
assert.ok(calls.some((c) => c.cmd === "chmod" && c.args.join(" ") === "+a _appforgebuild allow search /c"), "bare traverse grant on the cache root");
|
|
107
110
|
assert.ok(calls.some((c) => c.cmd === "sudo" && c.args.join(" ") === "mkdir -m 0755 /etc/appforge"));
|
|
108
111
|
assert.ok(writes.some((w) => w.path === BUILD_HELPER_PATH && w.mode === "0500" && w.content.includes('JOBS_ROOT="/j"')));
|
|
109
112
|
assert.ok(writes.some((w) => w.path === PF_RULES_FILE && w.mode === "0600"));
|
|
@@ -111,6 +114,21 @@ test("installBuildUser creates the account, adds the agent user to its group, in
|
|
|
111
114
|
assert.ok(writes.some((w) => w.path === SUDOERS_FILE));
|
|
112
115
|
assert.match(logs.join("\n"), /Done\./);
|
|
113
116
|
});
|
|
117
|
+
test("installBuildUser grants bare search (never list/read/write) on the home directory and the cache root, and ONLY those two — the jobs root is already world-traversable by default and never gets this grant", () => {
|
|
118
|
+
const { deps, calls } = fakeDeps();
|
|
119
|
+
installBuildUser({ user: "_appforgebuild", agentUser: "tooming", jobsRoot: "/j", cacheRoot: "/c" }, deps);
|
|
120
|
+
const grants = calls.filter((c) => c.cmd === "chmod" && c.args[0] === "+a");
|
|
121
|
+
assert.equal(grants.length, 2);
|
|
122
|
+
assert.ok(grants.some((c) => c.args[1] === "_appforgebuild allow search" && c.args[2] === homedir()));
|
|
123
|
+
assert.ok(grants.some((c) => c.args[1] === "_appforgebuild allow search" && c.args[2] === "/c"));
|
|
124
|
+
assert.ok(!grants.some((c) => c.args[2] === "/j"), "the jobs root itself must never get this grant");
|
|
125
|
+
assert.ok(!grants.some((c) => c.args[1].includes("allow read") || c.args[1].includes("allow list")), "search only — never list or read");
|
|
126
|
+
});
|
|
127
|
+
test("installBuildUser grants the search ACL only once per directory even when the home directory and cache root happen to be the same path", () => {
|
|
128
|
+
const { deps, calls } = fakeDeps();
|
|
129
|
+
installBuildUser({ user: "_appforgebuild", agentUser: "tooming", jobsRoot: "/j", cacheRoot: homedir() }, deps);
|
|
130
|
+
assert.equal(calls.filter((c) => c.cmd === "chmod" && c.args[0] === "+a").length, 1, "deduplicated, not one grant per role");
|
|
131
|
+
});
|
|
114
132
|
test("installBuildUser picks an id free in BOTH namespaces — reproduces the real failure on a stock Mac, where com.apple.access_ssh/access_screensharing/access_sessionkey/access_disabled/access_ftp already occupy gids 395-399", () => {
|
|
115
133
|
const { deps, calls } = fakeDeps({
|
|
116
134
|
listUserUids: () => "", // no user anywhere near the band: a check of this listing ALONE would (wrongly) pick 399
|
|
@@ -131,14 +149,16 @@ test("installBuildUser is fully idempotent: nothing is created, written, or run
|
|
|
131
149
|
readSudoers: () => `${helper}\n${becomeUser}\n`,
|
|
132
150
|
});
|
|
133
151
|
installBuildUser({ user: "_appforgebuild", agentUser: "tooming", jobsRoot: "/j", cacheRoot: "/c" }, deps);
|
|
134
|
-
// The account/group/membership/etc-dir/sudoers steps all skip;
|
|
135
|
-
// UNCONDITIONALLY
|
|
136
|
-
// install
|
|
152
|
+
// The account/group/membership/etc-dir/sudoers steps all skip; the helper script, the pf rules, and the
|
|
153
|
+
// home/cache search grant are UNCONDITIONALLY redone each run (so a template or rules change always
|
|
154
|
+
// takes effect on the next install, and the grant is cheap and idempotent — see ensureHomeAndCacheTraversable),
|
|
155
|
+
// plus the one pf-reload `run` call that goes with the pf rules.
|
|
137
156
|
assert.ok(!calls.some((c) => c.args[0] === "dscl"), "no dscl calls at all: nothing about the account needed creating");
|
|
138
157
|
assert.ok(!calls.some((c) => c.cmd === "sudo" && c.args[0] === "dseditgroup"));
|
|
139
158
|
assert.ok(!calls.some((c) => c.cmd === "sudo" && c.args[0] === "mkdir"));
|
|
140
159
|
assert.equal(writes.find((w) => w.path === SUDOERS_FILE), undefined, "sudoers is untouched when both lines are already present");
|
|
141
160
|
assert.equal(calls.filter((c) => c.cmd === "sudo" && c.args.join(" ") === `${BUILD_HELPER_PATH} pf-reload`).length, 1);
|
|
161
|
+
assert.equal(calls.filter((c) => c.cmd === "chmod" && c.args[0] === "+a").length, 2, "the search grant has no 'already there' check — it reruns every install, same as the helper script and pf rules");
|
|
142
162
|
});
|
|
143
163
|
test("installBuildUser defaults user to BUILD_USER_NAME and agentUser to whoami()", () => {
|
|
144
164
|
const { deps, writes } = fakeDeps({ whoami: () => "martin" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-user.test.js","sourceRoot":"","sources":["../../src/lib/build-user.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build-user.test.js","sourceRoot":"","sources":["../../src/lib/build-user.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appforge-ci/admin-cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.7",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"chalk": "^5.3.0",
|
|
17
17
|
"commander": "^12.1.0",
|
|
18
|
-
"@appforge-ci/agent": "0.3.
|
|
19
|
-
"@appforge-ci/core": "0.3.
|
|
18
|
+
"@appforge-ci/agent": "0.3.7",
|
|
19
|
+
"@appforge-ci/core": "0.3.7"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/node": "^20.16.5",
|