--:Minify:-- local kernel = ... if kernel.firstBoot or kernel.config.resetPerms then if kernel.config.resetPerms then kernel.log("resetPerms is active, disable it in /boot/boot.cfg", "WARN", 0xFFFF00) end 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[i] if kernel.vfs.exists(root..entry[1]) then kernel.vfs.updateMeta(root..entry[1],function(e) e.perms=entry[4] e.group=entry[3] e.owner=entry[2] end) end end end seed("/", { {"bin", 0, 0, RWX_RX_RX}, {"boot", 0, 0, RWX_RX_RX}, {"etc", 0, 0, RWX_RX_RX}, {"home", 0, 0, RWX_RX_RX}, {"lib", 0, 0, RWX_RX_RX}, {"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