Files
HyperionOS/Src/Hyperion-kernel/data/lib/modules/hyperion/92_setup.kmod
T
2026-08-25 21:16:16 -04:00

60 lines
1.7 KiB
Plaintext

--:Minify:--
local kernel = ...
if kernel.firstBoot then
kernel.log("Seeding filesystem permissions...")
local P = kernel.vfs.P
local PERM = kernel.vfs.PERM
local RW_R_R = P.OWNER_R + P.OWNER_W + P.GROUP_R + P.WORLD_R
local RWX_RX_RX = P.OWNER_R + P.OWNER_W + P.OWNER_X
+ P.GROUP_R + P.GROUP_X
+ P.WORLD_R + P.WORLD_X
local RW_R__ = P.OWNER_R + P.OWNER_W + P.GROUP_R
local RW____ = P.OWNER_R + P.OWNER_W
local RWXRWXRWX = PERM.RWXRWXRWX
local SUID_755 = PERM.SUID_755
local function seed(root, data)
for i=1,#data do
local entry=data[1]
kernel.vfs.chmod(root..entry[1],entry[2],entry[3])
kernel.vfs.chown(root..entry[1],entry[4])
end
end
seed("/", {
{"bin", 0, 0, RWX_RX_RX},
{"boot", 0, 0, RWX_RX_RX},
{"dev", 0, 0, RWXRWXRWX},
{"etc", 0, 0, RWX_RX_RX},
{"home", 0, 0, RWX_RX_RX},
{"lib", 0, 0, RWX_RX_RX},
{"proc", 0, 0, RWXRWXRWX},
{"root", 0, 0, RW____ },
{"sbin", 0, 0, RWX_RX_RX},
{"tmp", 0, 0, RWXRWXRWX},
{"usr", 0, 0, RWX_RX_RX},
{"var", 0, 0, RWXRWXRWX},
{"opt", 0, 0, RWX_RX_RX},
})
seed("/bin/", {
{"login", 0, 0, SUID_755 },
{"su", 0, 0, SUID_755 },
{"sudo", 0, 0, SUID_755 },
})
seed("/etc/", {
{"passwd", 0, 0, RW_R_R },
{"shadow", 0, 0, RW____ },
{"pam.d", 0, 0, RW____ },
})
seed("/etc/pam.d/", {
{"secret", 0, 0, RW____},
})
kernel.log("Filesystem permissions seeded.")
end