This article is from the Frequently Asked Questions for Linux, the Free/Open Source UNIX-like operating system kernel that runs on many modern computer systems. Maintained by David C. Merrill with numerous contributions by others. (v1.0).
A: You probably have some permission problems, or you have a file /etc/ nologin.
In the latter case, put rm -f /etc/nologin in your /etc/rc.local or /etc/rc.d /* scripts.
Otherwise, check the permissions on your shell, and any file names that appear in error messages, and also the directories that contain these files, up to and including the root directory.