You're logged in as ijohn and copying a file owned by root. cp command can not work around Linux's security machinery - your user is not allowed to create files owned by root or change ownersip of files to root. Doing so would be a security problem.
If you need to copy files owned by other users, do so using sudo:
sudo cp --preserve /etc/passwd
Here's a good explanation I found on linuxquestions.org:
the -p argument works for all users in the constraint of that users
abilities on the system. generally non-root users will be able to
preserve ownership of their files that they own and are owned by a
group that the specific non-root user belongs to. they cannot preserve
ownership of files owned by other users (albeit, there may be ways
around this depending on the suid, guid, and sticky bits). root can
preserve the ownership of files owned by different users, because root
has full system priveledges. but joe_schmoe can not preserve the
ownership of files owned by root or files owned by billy, etc.
depending on where the file will be copied to, joe_schmoe can only
preserve file ownership of files owned by joe_schmoe and owned by a
group joe_schmoe belongs to.