Adding meta data to user I would like to store meta data about users.

At first this I tried by adding fields to the user, but this is not exactly what I want, because the user himself should not be able to manipulate or view the data. 

The data I want to store is based on actions a users takes in the application. Its is similar to a status which I want to write and read programmatically. E.g. has the users phone number been validated by the system?

What is the best way to store such data?
Fields are definitely the best method for storing this data.

You can combine fields with the Field Permissions module:


  The Field Permissions module allows site administrators to set field-level permissions to edit, view and create fields on any entity.


With that module you'll be able to specify exactly which fields the user should be able to view/edit.