don't set up passwd/group files
This commit is contained in:
parent
8d80d6f8ab
commit
650f29a7c6
|
@ -41,10 +41,6 @@ export fn run_code(code: str) (str, str) = {
|
||||||
|
|
||||||
home_dir(&args, uid);
|
home_dir(&args, uid);
|
||||||
|
|
||||||
let (passwd_r, group_r) = passwd_files(&args, uid, gid);
|
|
||||||
defer io::close(passwd_r)!;
|
|
||||||
defer io::close(group_r)!;
|
|
||||||
|
|
||||||
let code_path = fmt::asprintf("{}/main.ha", app_dir);
|
let code_path = fmt::asprintf("{}/main.ha", app_dir);
|
||||||
defer free(code_path);
|
defer free(code_path);
|
||||||
let code_fp = os::create(code_path, 0o644)!;
|
let code_fp = os::create(code_path, 0o644)!;
|
||||||
|
@ -79,37 +75,6 @@ export fn run_code(code: str) (str, str) = {
|
||||||
return (stdout, stderr);
|
return (stdout, stderr);
|
||||||
};
|
};
|
||||||
|
|
||||||
fn passwd_files(args: *[]str, uid: u32, gid: u32) (io::file, io::file) = {
|
|
||||||
const passwd = `root:x:0:0:root:/root:/bin/bash
|
|
||||||
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin`;
|
|
||||||
const group = `root:x:0:
|
|
||||||
nogroup:x:65534:`;
|
|
||||||
|
|
||||||
let uid = fmt::asprintf("{}", uid);
|
|
||||||
// defer free(uid);
|
|
||||||
|
|
||||||
let gid = fmt::asprintf("{}", gid);
|
|
||||||
// defer free(gid);
|
|
||||||
|
|
||||||
let (passwd_r, passwd_w) = exec::pipe();
|
|
||||||
io::writeall(passwd_w, strings::toutf8(passwd))!;
|
|
||||||
io::close(passwd_w)!;
|
|
||||||
|
|
||||||
let (group_r, group_w) = exec::pipe();
|
|
||||||
io::writeall(group_w, strings::toutf8(group))!;
|
|
||||||
io::close(group_w)!;
|
|
||||||
|
|
||||||
append(args, "--file");
|
|
||||||
append(args, fmt::asprintf("{}", passwd_r: int));
|
|
||||||
append(args, "/etc/passwd");
|
|
||||||
|
|
||||||
append(args, "--file");
|
|
||||||
append(args, fmt::asprintf("{}", group_r: int));
|
|
||||||
append(args, "/etc/group");
|
|
||||||
|
|
||||||
return (passwd_r, group_r);
|
|
||||||
};
|
|
||||||
|
|
||||||
fn home_dir(args: *[]str, uid: u32) void = {
|
fn home_dir(args: *[]str, uid: u32) void = {
|
||||||
let user_dir = fmt::asprintf("/run/user/{}", uid);
|
let user_dir = fmt::asprintf("/run/user/{}", uid);
|
||||||
let home_dir = fmt::asprintf("{}/home", user_dir);
|
let home_dir = fmt::asprintf("{}/home", user_dir);
|
||||||
|
|
Loading…
Reference in a new issue