On Mon, Nov 12, 2001 at 10:19:31PM -0800, John Baldwin wrote:
> On 13-Nov-01 Crist J. Clark wrote:
> >> What if someone comments out a line in the password file of a user?  Then
> >> this
> >> won't hide that password.  When this originally went in, it took a long
> >> while
> >> to get a sed line people were happy with.  Replacing the version number is a
> >> minor thing, but getting it to work perfectly may be a bit difficult.  If
> >> you
> >> do this, I'd rather you make sed handle the $FreeBSD$ case as a completely
> >> separate case, so something like:
> >> 
> >> sed -e '/\$FreeBSD\$/; //s/blah blah/blah/' or some such (I forget how sed
> >> does
> >> multiple expressions).
> > 
> > I thought about this, but then thought, "Who ever just comments out
> > password entries without clearing the password too?" I guess the
> > answer is, some people do.
> > 
> > How about,
> > 
> >   sed -E 's/^([<>]
> > [^:]*):[^:]*:(([0-9]+:){2}[^:]*(:[0-9]+){2}(:[^:]*){3}$)/\1:(password)\2/'
> > 
> > Which only touches entries that match the password format exactly, but
> > includes commented out ones?
> That's fine I suppose.  I would rather err on the side of caution and just
> exclude the $FreeBSD$ line and perform the change on all other lines by
> default.  You never know what weird contortion of a password file someone
> might be using.

I look at it the same way, but from the other side. I would like to
err on the side of caution and only mangle lines that look like a
passwd(5) entry. Afterall, if it doesn't really look like a passwd(5)
entry, (a) it probably has no password to hide and (b) if it does,
there is no reason to believe that we are even going to find and cover
the password with the existing sed(1) line.

However, thinking about it more, loosening up the regex so it isn't
fixed to the begining and end of the line,

  sed -E 's/([^:]*):[^:]*:(([0-9]+:){2}[^:]*(:[0-9]+){2}(:[^:]*){3})/\1:(password):\2/'

May be a good idea. I'll put this new one in tomorrow unless someone
has better suggestion.
Crist J. Clark                     |     [EMAIL PROTECTED]
                                   |     [EMAIL PROTECTED]
http://people.freebsd.org/~cjc/    |     [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to