Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Aug 2006 11:10:02 -0400 (EDT)
From:      Jerry McAllister <jerrymc@clunix.cl.msu.edu>
To:        ross.penner@gmail.com (Ross Penner)
Cc:        freebsd-questions@freebsd.org, Pete Slagle <freebsd-questions@voidcaptain.com>
Subject:   Re: Changing root's shell
Message-ID:  <200608091510.k79FA29h016378@clunix.cl.msu.edu>
In-Reply-To: <f80199c40608081701l1106fc6auf732412dcee3ac70@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> On 8/8/06, Pete Slagle <freebsd-questions@voidcaptain.com> wrote:
> >
> > Ross Penner wrote:
> >
> > > how do you drop to single user mode? I just know how to get there at
> > > boot time.
> > >
> > > Thanks.
> > >
> > > On 8/8/06, *Pete Slagle* < freebsd-questions@voidcaptain.com
> > > <mailto:freebsd-questions@voidcaptain.com>> wrote:
> > >
> > >     ross wrote:
> > >
> > >     > so it seems changed root login's shell to /usr/bin/bash which
> > doesn't
> > >     > exist. now I can't login to root at all. Oh yes, sudo isn't
> > >     installed. How
> > >     > would you grand masters of FreeBSD fix my embarrasing mistake.
> > >
> > >     Dunno if any grand masters are about, but maybe I can help with this
> >
> > >     one.
> > >
> > >       - drop to single user mode: `shutdown now`
> > >       - when prompted for a shell, type /bin/sh
> > >       - `vipw /etc/passwd` and (carefully) change root's shell to
> > /bin/sh
> > >       - type `exit` at the shell prompt to return from single user mode
> >
> > Normally you just do what I said, `shutdown now` as root, but I guess
> > you can't do that in your situation. (Silly me.) So just reboot into
> > single user mode instead, and follow the rest of the steps.
> >
> > Good luck,
> > Pete
> >
> > interestingly, by hitting the power button on the front, it went through
> the shutdown process without root permissions.
> 
> I followed your steps but the problem remains. The /etc/passwd file is
> edited but I still can't logon as root. When I changed the shell initially,
> I used chpass. I
> also tried changeing the /etc/master.passwd file to no avail.

You need to make sure that the root file system is remounted with
read/write permission.   To do that, simply type
  mount -u /

Rather than trying to edit either /etc/passwd or /etc/master.passwd 
directly, you should use vipw to change things in the password systen
and for that you need /usr mounted if it is in a separate file system 
from root.   So, just to be sure everything you need is available type:

  mount -a

Then type:

  vipw

and edit the root entry and put the shell back to /bin/sh
Always leave the root shell as /bin/sh

If you want to do work as root with some different shell, create
another root account such as Rwork or Wroot or whatever and
give that the other shell and use it.   That leaves root pristine
for those times of difficulty.

To create another root account, just use vipw and dupicate the line
for root and edit the new copy to have a new name and the different
shell.    You might also want to give it its own home directory to
keep things nice and clean - say /root/Rwork if the id you made is Rwork.

Get out of vipw as you would vi - eg with 'ESC :wqENTER' and then the
account is made and all the master.passwd and database are updated
correctly, automatically and with appropriate file locking.  

Then you need to set a password on the new account.
When you do this, you MUST use the id name on the passwd command.
Other wise it will change the first id that has the same UID which
will most likely be the regular root account rather than your new one.
So, type:

  passwd Rwork     (presuming you made the new id be named Rwork)

answer the double prompts and voila, it is there.

If you made it have its own home directory, you have to create 
that directory so type:

  cd /root
  mkdir Rwork         (or whatever new root id you created)

Put whatever .cshrc .login .profile you want in to that directory
and you are home free.

NOTE that if your system does not allow remote root logins so
     you have to log in as a normal ID and then su to root, then
     the same will be true for this new account.  Log in as a
     normal (non-root) id and then do:  su Rwork     (if Rwork is
     that new root ID).   The regular account will also still need
     to be in the wheel group to do the su to any root ID.

Have fun,

////jerry

> _______________________________________________
> freebsd-questions@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> To unsubscribe, send any mail to "freebsd-questions-unsubscribe@freebsd.org"
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608091510.k79FA29h016378>