How does a user database compare to integrated user management

Currently I am setting up my first apache webserver in Ubuntu 20.04 on dedicated hardware. Will host <10000 unique user accounts with an approximate max of 200 concurrent users. I plan on using Django.

With no theoretical knowledge of user management, I am wondering if I should use the integrated user system of Ubuntu and play with GID and permissions or keep everything python based and write a sqlite3 database handler and serve content based on userID read from said user database to keep users out of the system.

What are the benefits, downsides and do's and don'ts regarding this topic?

1 Answer

Portability is the key here. The more portable you make it the easier time you have in the future. Use a database method for users and passwords and try to keep your OS as default as possible. Put the effort in to not install packages and create a script for all the updates you need (modules for the webserver, and python) so you can re-run it whenever you need.

  • If you ever decide to go for MySQL all you need is a new connector as your database and content is easily copied over.

  • If you ever decide to support another OS (redhat, suse, openBSD, gentoo etc) it will be easy too do.

  • Split your system into 2 DISKS: 1 for system, 1 for anything related to your system and use symlinks or direct copies to connect to the system disk. So your website and database go to the personal disk.

Upgrading should be creating a system disk with the new OS and attaching a (copy of the) user disk. That makes for close to zero downtime when you want to start using a future LTS.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like