diff --git a/packages/user-access/src/index.ts b/packages/user-access/src/index.ts index 9c64a0ad..cbbaa122 100644 --- a/packages/user-access/src/index.ts +++ b/packages/user-access/src/index.ts @@ -1,8 +1,9 @@ import { isSudo, execRootSync } from "admina" +import { statSync } from "fs" /** - * Give the user access to the given path and its sub-directories. It changes the owner to the SUDO_USER. This allows - * the user to use the folder without sudo + * Give the user access to the given path (and its sub-directories if a directory). It changes the owner to the + * SUDO_USER. This allows the user to use the folder without sudo * * @param path The path to give the user access to */ @@ -12,6 +13,11 @@ export function giveUserAccess(path: string) { isSudo() && process.env.SUDO_USER !== undefined ) { - execRootSync("chown", ["-R", process.env.SUDO_USER, path], { cwd: path, stdio: "inherit", shell: true }) + const isDirectory = statSync(path).isDirectory() + execRootSync("chown", [...(isDirectory ? ["-R"] : []), process.env.SUDO_USER, path], { + cwd: path, + stdio: "inherit", + shell: true, + }) } }