diff --git a/index.js b/index.js index 6105029b..585af22e 100644 --- a/index.js +++ b/index.js @@ -18,8 +18,8 @@ const PORT = process.env.PORT || 80 const HOST = process.env.HOST const CONFIG_PATH = process.env.CONFIG_PATH || '/config' const METADATA_PATH = process.env.METADATA_PATH || '/metadata' -const UID = process.env.AUDIOBOOKSHELF_UID || 99 -const GID = process.env.AUDIOBOOKSHELF_GID || 100 +const UID = process.env.AUDIOBOOKSHELF_UID +const GID = process.env.AUDIOBOOKSHELF_GID const SOURCE = process.env.SOURCE || 'docker' const ROUTER_BASE_PATH = process.env.ROUTER_BASE_PATH || '' diff --git a/prod.js b/prod.js index 57417033..de60b19d 100644 --- a/prod.js +++ b/prod.js @@ -23,8 +23,8 @@ const PORT = options.port || process.env.PORT || 3333 const HOST = options.host || process.env.HOST || "0.0.0.0" const CONFIG_PATH = inputConfig || process.env.CONFIG_PATH || Path.resolve('config') const METADATA_PATH = inputMetadata || process.env.METADATA_PATH || Path.resolve('metadata') -const UID = 99 -const GID = 100 +const UID = process.env.AUDIOBOOKSHELF_UID +const GID = process.env.AUDIOBOOKSHELF_GID const SOURCE = options.source || 'debian' const ROUTER_BASE_PATH = process.env.ROUTER_BASE_PATH || '' diff --git a/server/Server.js b/server/Server.js index 3b9223da..7a0a016e 100644 --- a/server/Server.js +++ b/server/Server.js @@ -43,8 +43,8 @@ class Server { this.Host = HOST global.Source = SOURCE global.isWin = process.platform === 'win32' - global.Uid = isNaN(UID) ? 0 : Number(UID) - global.Gid = isNaN(GID) ? 0 : Number(GID) + global.Uid = isNaN(UID) ? undefined : Number(UID) + global.Gid = isNaN(GID) ? undefined : Number(GID) global.ConfigPath = fileUtils.filePathToPOSIX(Path.normalize(CONFIG_PATH)) global.MetadataPath = fileUtils.filePathToPOSIX(Path.normalize(METADATA_PATH)) global.RouterBasePath = ROUTER_BASE_PATH diff --git a/server/utils/filePerms.js b/server/utils/filePerms.js index d875703e..c48b4261 100644 --- a/server/utils/filePerms.js +++ b/server/utils/filePerms.js @@ -91,7 +91,11 @@ module.exports.setDefault = (path, silent = false) => { const uid = global.Uid const gid = global.Gid return new Promise((resolve) => { - if (!silent) Logger.debug(`[FilePerms] Setting permission "${mode}" for uid ${uid} and gid ${gid} | "${path}"`) + if (isNaN(uid) || isNaN(gid)) { + if (!silent) Logger.debug('Not modifying permissions since no uid/gid is specified') + return resolve() + } + if (!silent) Logger.debug(`Setting permission "${mode}" for uid ${uid} and gid ${gid} | "${path}"`) chmodr(path, mode, uid, gid, resolve) }) } @@ -102,6 +106,10 @@ module.exports.setDefaultDirSync = (path, silent = false) => { const mode = 0o744 const uid = global.Uid const gid = global.Gid + if (isNaN(uid) || isNaN(gid)) { + if (!silent) Logger.debug('Not modifying permissions since no uid/gid is specified') + return true + } if (!silent) Logger.debug(`[FilePerms] Setting dir permission "${mode}" for uid ${uid} and gid ${gid} | "${path}"`) try { fs.chmodSync(path, mode)