Making credentials file more configurable

The location is hard coded in many places but what is more problematic that the permissions also. This is a problem since the hard coded permission is quite allowing so you need to take special care about restricting it. Exposing these parameters as attributes makes it easier to handle the credentials file