How to setup SFTP accounts via SSH?

I am just finishing up building my first server. I am able to login to SFTP via my main SSH root account.

Now I want to create a SFTP user that will have full permissions for public_html as I will be using that account exclusively for uploading files and SFTP access, and not my root account. That user should not have SSH access or any other access.

Please tell me if its a good practise, and what commands I need to do it? I am not using any control panels, so only SSH.