If you're going to use the built in passwd command, you probably will need to go with something like expect, as plaid stated.

But depending on what flavor of unix you're using, there may be another option which would lend itself to batch processing more easily than the passwd command. On FreeBSD (I'm not sure about other unices), you might want to check out the commands pw and chpass. They let you do various password file munging operations completely from the command line. You'll need to encrypt the password manually, unfortunately, but that's not too tricky: perldoc -f crypt for more information.

Another option, which I personally prefer not to use, would be to have perl change /etc/passwd and /etc/master.passwd manually, and then rebuild the password databases with pwd_mkdb. That's how we used to do things in the olden days, but you need to be very careful about things like file locking, or you discover There's More Than One Way To Shoot Yourself In The Foot.

Alan

Update: Oops, apparently it's still the Olden Days around here. I'll have to tell The Other Guy about chpass. Not that I don't trust his code, but why reinvent the wheel?


In reply to RE: /usr/bin/passwd by ferrency
in thread /usr/bin/passwd by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.