If NIS is running, then passwd would theoretically function locally but use the NIS database. The issue therefore becomes enabling the non-priveleged user to do a privileged action. The C way of doing this is to write a program that:
- performs a setuid or setruid system call to become root
- performs further system calls, e.g. setpwinfo if Solaris, to set the password
and then set the sticky bit of the resulting executable to enable the setruid for the O/S.
I don't see a way to convert the setruid part into perl - I think instead you'd need to make it a linked-in C subroutine -- it is practically a one-liner in C anyway. Passwd::Solaris and Passwd:Linux provide the replacement for actually setting the password. PAR can create the required executable whose sticky bit should be set immediately after installation
(e.g. in the manager's home) as before (setting the sticky bit of a perl script will probably be insufficient). See also PAR Tutorial. Alternative ways to make an executable from perl are perlcc and Perl2Exe.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.