System accounts are reserved for services and daemons. Use the -r (--system) option to create a system user account.
This flag is used to create a system account - a user with a UID lower than the value of UID_MIN defined in /etc/login.defs and whose password does not expire.
Note that useradd will not create a home directory for such an user, regardless of the default setting in /etc/login.defs.
You have to specify -m option if you want a home directory for a system account to be created. This is an option added by RedHat.
Example:
useradd -r -g mysql mysql
So, system users are a like normal users but for are set an organizational purpose. The only difference is: