I would like to add more information about this problem, since it bugged me for many hours. I would never imagine that directory /tmp is so important in Ubuntu.
You can also spot this problem if you open the file (/var/log/auth.log)
and search for some lines similar to these:
Jan 18 01:55:12 localhost **gnome-keyring-daemon**: couldn't create socket directory: **Permission denied**
Jan 18 01:55:12 localhost gnome-keyring-daemon: couldn't bind to control socket: /tmp/keyring-mKRg6t/control: **No such file or directory**
Jan 18 01:55:12 localhost lightdm: pam_unix(lightdm:session): session closed for user <your_username>
This must have happened because you probably changed the permissions of directory /tmp.
And this is why you could login with root and not with other users.
As Dennis Williamson wrote this command (sudo chmod o+t,ugo+rw /tmp)
sets the correct permissions (drwxrwxrwt)