Force resets a user's password, even if the oldPassword is not known.

@param {String} user - user to reset

@returns {Promise} A promise which is resolved when the operation is complete
or rejected if an error occurs.
function forceResetUserPassword(user) {
    const deferred = q.defer();

    cryptoUtil.generateRandomBytes(24, 'hex')
        .then((randomBytes) => {
            util.runShellCommand(`echo -e "${randomBytes}\n${randomBytes}" | passwd ${user}`);
            deferred.resolve(randomBytes);
        })
        .catch((err) => {
            deferred.reject(err);
        });
    return deferred.promise;
}