Skip to main content
The default user in the template is user with the /home/user (home directory) as the working directory. This is different from the Docker defaults, where the default user is root with / as the working directory. This is to help with tools installation, and to improve default security. The last set user and workdir in the template is then persisted as a default to the sandbox execution. Example of setting user and workdir in the template definition are below.
Requires the E2B SDK version at least 2.3.0

Default user and workdir in sandbox

const sbx = await Sandbox.create()
await sbx.commands.run("whoami") // user
await sbx.commands.run("pwd") // /home/user

Custom user and workdir template

// template.ts
const template = Template()
  .fromBaseImage()
  .runCmd("whoami") // user
  .runCmd("pwd") // /home/user
  .setUser("guest")
  .runCmd("whoami") // guest
  .runCmd("pwd") // /home/guest


// build_dev.ts
await Template.build(template, {
  alias: "custom-user-template", 
  onBuildLogs: defaultBuildLogger()
})


// index.ts
const sbx = await Sandbox.create("custom-user-template")
await sbx.commands.run("whoami") // guest
await sbx.commands.run("pwd") // /home/guest