Drupal private file system and possible sharing options
Private filesystem allows Drupal to run permission checks before serving the requested file.

If you are using public file system, direct links to your files will be accessible to anyone, no matter they are logged in users or anonymous.

Regarding your questions:


  If i want let only user that uploaded file have access to the file, which setting should i choose, and what are drawbacks?


You should choose private filesystem. Drawbacks are explained above.


  Moreover, could if i choose private system, could i control access by module (for exaple User relationships module, so the friends of user could download the file)


Check out hook_file_download() - you can use it in a custom module to perform custom access checks.

Also, see this thread.