bad root shell

Steve Bertrand iaccounts at northnetworks.ca
Sat Dec 20 12:51:00 PST 2003


On Sat, 2003-12-20 at 12:44, Mark McConnell wrote:
> An error in a pw* script inserted a non-existent shell into the 
> password database, effectively locking out root.
> 
> I used a fixit disk to correct the problem, using this procedure:
> 
> 1. mount boot drive to /mnt
> 
> 2. provide myself with a working mkdb and vi (for chpass):
> # mkdir /usr/sbin /usr/bin
> # ln -s /mnt/usr/sbin/pwd_mkdb /usr/sbin/pwd_mkdb
> # ln -s /mnt/usr/bin/vi /usr/bin/vi
> 
> 3. link pwd.db, spwd.db, group, passwd, master.passwd, ex:
> # rm /etc/group /etc/spwd.db
> # for i in `ls /mnt/etc/` ; do ln -s /mnt/etc/$i /etc/$i ; done
> 
> 4. run mkdb
> # /usr/sbin/pwd_mkdb master.passwd
> 
> 5. Using chpass to change root's shell from `badshell' to csh
> # chpass root
> :s/badshell/\/bin\/csh/
> 
> All of this appears to do work without errors:
> # pw usershow -u root
> root:*:0:0::0:0:Charlie &:/root:/bin/csh
> 
> However, when I log in as root, I am still locked out with the 
> message:
> $ su
> Password: ********
> badshell:  No such file or directory
> 
> I am still stupid.  I am still locked out.  /etc/passwd and 
> /etc/master.passwd no longer show the badshell.  My configuration 
> appears to be deeply broken.  Why does my procedure fail?  
> 

Just a thought, does /bin/csh live in /etc/shells? Is csh actually in
the /bin directory? Is it executable? Perhaps try using /bin/sh for your
shell.

Steve


> Mark
> --
> Mark McConnell - Portland, OR
> Technical Imaging Systems
> markmc at tisimaging.com
> 503-546-0517
> mkmcconn at hevanet.com
> 503-257-7591
> 
> _______________________________________________
> freebsd-questions at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"



More information about the freebsd-questions mailing list