Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4552
  • Last Modified:

Run Linux command in Perl script as different user

I think this is more a Linux command question, but it resides in a perl script so I'll post in both...

I am running a perl script that automates a linux server account setup and then emails the users (using the mail command) to let them know that the account is ready.  Currently, to send an email I do the following:

             # Open for mail output
             open(MAIL, "|mail -s 'Accout is Ready' -b $blindCopyEmails $userEmail ");
             # add message for mail
             print MAIL $emailMessage;
             # Close/Send mail
             close(MAIL);

When the mail is sent out, it is sent from the root account because the automated perl script is ran by the root account, so the email shows from root@thisdomain.com, but I want it to come from another user account.  If I can run the "mail" command as another user, then it will send the email from that user.  I don't believe the mail command has an arguement for changing the from: field, only the subject, cc, bcc, and sendto.  It is required that the actual perl script is run by the root user.

Any suggestions??  

Thanks,
LTCJ
0
LocoTechCJ
Asked:
LocoTechCJ
1 Solution
 
from_expCommented:
0
 
ozoCommented:
         POSIX::setuid()
0
 
Adam314Commented:
Assuming you have sendmail on your computer, you could use sendmail instead of mail:

open (MAIL, "|/usr/sbin/sendmail -t") or die "Could not open sendmail: $!\n";
print MAIL "From: user\@thisdomain.com\n";
print MAIL "To: $userEmail\n";
print MAIL "BCC: $blindCopyEmails\n"
print MAIL "Subject: Account is Ready\n\n";
print MAIL $emailMessage;
close(MAIL) || die "Error closing mail: $!";

0
 
LocoTechCJAuthor Commented:
I had considered using sudo, but it would only give me permission errors running the mail command.

Adam314:  That's a great idea... not sure why I hadn't thought of that.   That works great.  Thanks.

PS:  Must add a ; on the BCC line.  I was scratching my head at first, wondering why it wasn't working. :)

--LTCJ
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now