[{"data":1,"prerenderedAt":290},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fpolicy\u002Fuser":3},{"id":4,"title":5,"body":6,"description":15,"extension":283,"meta":284,"navigation":285,"path":286,"seo":287,"stem":288,"__hash__":289},"docs\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fpolicy\u002Fuser.md","user",{"type":7,"value":8,"toc":280},"minimark",[9,12,16,50,113,225,253,259,264,267,276],[10,11,5],"h1",{"id":5},[13,14,15],"p",{},"Which OS user to run the capsule subprocess as. Linux only.",[17,18,23],"pre",{"className":19,"code":20,"language":21,"meta":22,"style":22},"language-ts shiki shiki-themes dark-plus","type User = string   \u002F\u002F default: \"inherit\"\n","ts","",[24,25,26],"code",{"__ignoreMap":22},[27,28,31,35,39,43,46],"span",{"class":29,"line":30},"line",1,[27,32,34],{"class":33},"scz_3","type",[27,36,38],{"class":37},"sNl3T"," User",[27,40,42],{"class":41},"sTNBD"," = ",[27,44,45],{"class":37},"string",[27,47,49],{"class":48},"sOLPB","   \u002F\u002F default: \"inherit\"\n",[51,52,53,66],"table",{},[54,55,56],"thead",{},[57,58,59,63],"tr",{},[60,61,62],"th",{},"Value",[60,64,65],{},"Behaviour",[67,68,69,81,95,103],"tbody",{},[57,70,71,78],{},[72,73,74,77],"td",{},[24,75,76],{},"\"inherit\""," (default)",[72,79,80],{},"Runs as the invoking user. No OS enforcement.",[57,82,83,88],{},[72,84,85],{},[24,86,87],{},"\"axon-agent\"",[72,89,90,91,94],{},"Subprocess and all children run as ",[24,92,93],{},"axon-agent",". ACLs applied. Env stripped.",[57,96,97,100],{},[72,98,99],{},"Any username",[72,101,102],{},"Same as above for the named user. Must exist on the system.",[57,104,105,110],{},[72,106,107],{},[24,108,109],{},"\"root\"",[72,111,112],{},"Runs as root. ACLs skipped — root bypasses them. Mediator and env stripping still apply.",[17,114,116],{"className":19,"code":115,"language":21,"meta":22,"style":22},"export default defineAgent({\n    policy: {\n        fs: {\n            read:  [\".\u002Fsrc\u002F**\"],\n            write: [\".\u002Foutput\u002F**\"],\n            deny:  [\"**\u002F.env*\"],\n        },\n        user: \"axon-agent\",\n    },\n})\n",[24,117,118,134,144,152,168,182,195,201,213,219],{"__ignoreMap":22},[27,119,120,124,127,131],{"class":29,"line":30},[27,121,123],{"class":122},"sYbnZ","export",[27,125,126],{"class":122}," default",[27,128,130],{"class":129},"sCudf"," defineAgent",[27,132,133],{"class":41},"({\n",[27,135,137,141],{"class":29,"line":136},2,[27,138,140],{"class":139},"s3F5K","    policy:",[27,142,143],{"class":41}," {\n",[27,145,147,150],{"class":29,"line":146},3,[27,148,149],{"class":139},"        fs:",[27,151,143],{"class":41},[27,153,155,158,161,165],{"class":29,"line":154},4,[27,156,157],{"class":139},"            read:",[27,159,160],{"class":41},"  [",[27,162,164],{"class":163},"sKc5r","\".\u002Fsrc\u002F**\"",[27,166,167],{"class":41},"],\n",[27,169,171,174,177,180],{"class":29,"line":170},5,[27,172,173],{"class":139},"            write:",[27,175,176],{"class":41}," [",[27,178,179],{"class":163},"\".\u002Foutput\u002F**\"",[27,181,167],{"class":41},[27,183,185,188,190,193],{"class":29,"line":184},6,[27,186,187],{"class":139},"            deny:",[27,189,160],{"class":41},[27,191,192],{"class":163},"\"**\u002F.env*\"",[27,194,167],{"class":41},[27,196,198],{"class":29,"line":197},7,[27,199,200],{"class":41},"        },\n",[27,202,204,207,210],{"class":29,"line":203},8,[27,205,206],{"class":139},"        user:",[27,208,209],{"class":163}," \"axon-agent\"",[27,211,212],{"class":41},",\n",[27,214,216],{"class":29,"line":215},9,[27,217,218],{"class":41},"    },\n",[27,220,222],{"class":29,"line":221},10,[27,223,224],{"class":41},"})\n",[13,226,227,228,230,231,233,234,236,237,240,241,244,245,252],{},"When ",[24,229,5],{}," is set to anything other than ",[24,232,76],{}," or ",[24,235,109],{},", the runtime\nautomatically validates the user exists, applies ",[24,238,239],{},"setfacl"," ACLs derived from ",[24,242,243],{},"fs",",\nstrips env vars per ",[246,247,249],"a",{"href":248},"\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fpolicy\u002Fenv",[24,250,251],{},"env",", and launches the capsule as that user. Hard\nerror at boot if the user does not exist — no silent fallback.",[13,254,255,256,258],{},"On macOS and Windows, ",[24,257,5],{}," has no effect. OS enforcement is Linux only.",[260,261,263],"h2",{"id":262},"why-use-this","Why use this",[13,265,266],{},"The mediator gate catches policy violations before tool functions execute. OS enforcement\ncloses the structural gap: a tool that somehow bypasses the mediator still cannot read\nfiles the system user has no access to, and cannot see env vars that were stripped at\nboot. The kernel enforces it.",[13,268,269,270,272,273,275],{},"The ",[24,271,243],{}," policy you already declared is applied at both layers. No extra configuration —\nsetting ",[24,274,5],{}," activates OS enforcement automatically.",[277,278,279],"style",{},"html pre.shiki code .scz_3, html code.shiki .scz_3{--shiki-default:#569CD6}html pre.shiki code .sNl3T, html code.shiki .sNl3T{--shiki-default:#4EC9B0}html pre.shiki code .sTNBD, html code.shiki .sTNBD{--shiki-default:#D4D4D4}html pre.shiki code .sOLPB, html code.shiki .sOLPB{--shiki-default:#6A9955}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sYbnZ, html code.shiki .sYbnZ{--shiki-default:#C586C0}html pre.shiki code .sCudf, html code.shiki .sCudf{--shiki-default:#DCDCAA}html pre.shiki code .s3F5K, html code.shiki .s3F5K{--shiki-default:#9CDCFE}html pre.shiki code .sKc5r, html code.shiki .sKc5r{--shiki-default:#CE9178}",{"title":22,"searchDepth":136,"depth":136,"links":281},[282],{"id":262,"depth":136,"text":263},"md",{},true,"\u002Fdocs\u002Fv2\u002Fapi\u002Fconfig\u002Fpolicy\u002Fuser",{"title":5,"description":15},"docs\u002Fv2\u002Fapi\u002Fconfig\u002Fpolicy\u002Fuser","1Q30Nhl1HnZPJ9gVq7WjmO9JmTeGNysZInXe1SFcc8k",1786529563316]