I have a Tornado app-server running behind an Nginx web-server. The app server contains python scripts for tasks like processing client requests, database call, running business logic, etc.
Of course, the code must be executed via a Operating System user account. Now I see that in Linux, two types of OS accounts are possible: a normal user account and a system account (the later one created using --system option, uses /usr/false and has no home directory).
My questions are:
[1] Should I use system user account as opposed to a normal user account to deploy and run the codes?
[2] Is system user account more secure than a normal user account?
[3] In which directory should I keep my code files (from security point of view)?
Information:
1) I don't intend to use the account running the python code for any other purpose.
2) I am using supervisord and virtualenv in my production environment.
3) I intend to do detailed monitoring of the log files.
Being system administrator, I am asking this question from security point of view. Will be happy to learn from you guys. Thanks in advance.