docs: def main(overwrite):
      """
      Used to create configuration files, set permissions and so on.
      """
      logger.debug("Checking existence of '%s'.", CONF_PATH)
      if not os.path.exists(CONF_PATH):
          logger.debug("Directory %s not found! Panicking..", CONF_PATH)
          raise UserWarning(
              "Can't find '%s' - it looks like ProFTPD is not installed!" % (
                  CONF_PATH,
              )
          )
  
      # check existence of proftpd.conf
      logger.debug("Checking existence of configuration file '%s'.", CONF_FILE)
      if not os.path.exists(CONF_FILE):
          logger.debug("Configuration file not found, creating..")
          _write_conf_file()
      else:
          logger.debug("Found.")
  
          if not os.path.exists(CONF_FILE + "_"):
              logger.debug(
                  "Backing up the configuration file '%s' -> '%s'.",
                  CONF_FILE,
                  CONF_FILE + "_"
              )
              shutil.copyfile(CONF_FILE, CONF_FILE + "_")
          else:
              logger.debug(
                  "Backup already exists. '%s' will be overwritten.",
                  CONF_FILE
              )
      if overwrite:
          logger.debug("--update switch not found, overwriting conf file")
          _write_conf_file()
  
      logger.debug("Checking existence of the '%s' file.", MODULES_FILE)
      if not os.path.exists(MODULES_FILE) and _is_deb_system():
          with open(MODULES_FILE, "w") as f:
              f.write(DEFAULT_MODULES_CONF)
              logger.debug("Modules file not found. Created '%s'.", MODULES_FILE)
  
      # create data directory, where the user informations will be stored
      logger.debug("Checking existence of user's directory '%s'.", DATA_PATH)
      if not os.path.exists(DATA_PATH):
          logger.debug("Directory '%s' not found, creating..", DATA_PATH)
  
          os.makedirs(DATA_PATH, 0777)
  
          logger.debug("Done. '%s' created.", DATA_PATH)
  
      # create user files if they doesn't exists
      logger.debug("Checking existence of passwd file '%s'.", LOGIN_FILE)
      if not os.path.exists(LOGIN_FILE):
          logger.debug("passwd file not found, creating..")
  
          open(LOGIN_FILE, "a").close()
  
          logger.debug("Done. '%s' created.")
  
      logger.debug("Setting permissions..")
      os.chown(LOGIN_FILE, get_ftp_uid(), -1)
      os.chmod(LOGIN_FILE, 0400)
  
      # load values from protpd conf file
      logger.debug("Switching and adding options..")
      data = ""
      with open(CONF_FILE) as f:
          data = f.read()
  
      # set path to passwd file
      logger.debug("\tAuthUserFile")
      data = add_or_update(
          data,
          "AuthUserFile",
          LOGIN_FILE
      )
      logger.debug("\tRequireValidShell")
      data = add_or_update(data, "RequireValidShell", "off")
      logger.debug("\tDefaultRoot")
      data = add_or_update(data, "DefaultRoot", "~")
  
      # http://www.proftpd.org/docs/modules/mod_log.html
      logger.debug("\tLogFormat")
      data = add_or_update(data, "LogFormat", 'paths "%f, %u, %m, %{%s}t"')
      logger.debug("\tExtendedLog")
      data = add_or_update(
          data,
          "ExtendedLog",
          LOG_FILE + " WRITE paths"
      )
  
      if not _is_deb_system():
          logger.debug("Detected non debian based linux. Aplying SUSE changes.")
          data = comment(data, "IdentLookups off")
          data = comment(data, "Include /etc/proftpd/modules.conf")
          data = add_or_update(data, "User", "ftp")
  
      # save changed file
      logger.debug("Saving into config file..")
      with open(CONF_FILE, "w") as f:
          f.write(data)
          logger.debug("Done.")
  
      logger.debug("Sending proftpd signal to reload configuration..")
      reload_configuration()
      logger.debug("Done.")
      logger.info("All set.")