As
ferrency suggested in the crisis he describes in
"Don't try this at home", composing all the bits of a
system command into one line is dangerous, because one of those variables might contain a malicious command.
Instead, consider using the system LIST syntax, e.g.:
# # add double-quote characters to either end of realname
# # $realname = '"' . $realname . '"';
# commented out above line after fruiture pointed out that
# system LIST format makes it unnecessary -- and even
# wrong, since realname would then be stored with '"'
# on either side!
# run system command, but pass args directly to the
# adduser program, rather than booting a shell
if (!system("adduser",
$username,
'-g', '100',
'-s', '/bin/false',
'-d', "/home/$username",
'-p', $encrypted_pass,
'-e' $expiry_date,
'-c' $realname
)
) {
die "trouble adding user: returned non-zero\n";
}
This will:
- Solve your problem with quotes, since
you've added them $realname is passed as a single argument.
- Protect you from malicious examples like ferrency pointed out before.
See perldoc -f system.
update: fruiture pointed out that quotes were not needed in system LIST syntax.
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.