What is the default file permission of /etc/shadow in CentOS? Is there any difference in the default file permission of /etc/shadow in previous versions of CentOS?
That's an interesting observation; the only concrete evidence I could find, so far, is this SCAP mailing list thread talking about the change from RHEL5's default permissions of 0400 to RHEL6's default of 0. You can also observe that in the list of Common Configuration Enumartions on the Working Group's now-archived website.
The shadow file is specifically designed to be read ONLY by root. The point in this file is to prevent people from seeing your encrypted passwords because there are commands like "crack" than can figure out many passwords from their encrypted values. Prior to introduction of the shadow file the encrypted passwords were stored in /etc/passwd and if they weren't properly formed were very easy to break.
/etc/shadow file stores actual password in encrypted format for user's account with additional properties related to user password i.e. it stores secure user account information. All fields are separated by a colon (:) symbol. It contains one entry per line for each user listed in /etc/passwd file