andylai82 发表于 2008-09-03 09:33

invalid user shell

about two day ago,i installed a operating system of solaris 10.soon ,i found the default shell of system was sh shell.i thought just replace the root default shell to ksh in the profile of passwd would be good!when i reboot system there was a prompt "invalid user shell"
Solution:
1.loggedinto solaris failsafe ,
2.you will be prompted that "do you wish to have
it mounted read-write on /a",type "y" enter
3.type pwd tochecking the current path on command-line,
the result will   be "\tmp\root"
4.#cd /a ,entry into hard disk that you was installed operation system
5.vi /etc/passwd ,replace the entry from "root:x:0:0:supper-user:/:/sbin/ksh" to
"root:x:0:0:supper-user:/:/:/sbin/sh"
6.reboot

Cause:
The default login shell for the solaris superuser root is /sbin/sh,a statically linked Bourne shell.this shell is not dependent on any other files to run.the useal
user shell like /usr/bin/ksh are dynamically linked and are dependnt on libarary files.if the root login shell is changed from /sbin/sh to a non-static shell,root will not be able to log into the system if certain filesystems cannot mount.a simple addition to root's /.profile will change the shell sfely.

Solution
To change the root shell to Korn shell at login if the file /usr/bin/ksh exists, add the following lines to the end of the root user's profile (usually /.profile):

if [ -x /usr/bin/ksh ]; then
    SHELL=/usr/bin/ksh
    export SHELL
    exec /usr/bin/ksh
else
    echo /usr/bin/ksh not found using default shell of $SHELL
fi

Make certain that the login shell for root in /etc/passwd is /sbin/sh.




   


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/78157/showart_1162652.html
页: [1]
查看完整版本: invalid user shell