Solved

Run Linux command in Perl script as different user

Posted on 2007-12-04
4
4,508 Views
Last Modified: 2013-12-17
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
Comment
Question by:LocoTechCJ
4 Comments
 
LVL 21

Expert Comment

by:from_exp
ID: 20405457
0
 
LVL 84

Expert Comment

by:ozo
ID: 20405528
         POSIX::setuid()
0
 
LVL 39

Accepted Solution

by:
Adam314 earned 500 total points
ID: 20405549
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
 
LVL 8

Author Comment

by:LocoTechCJ
ID: 20405835
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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Granting full access permission allows users to access mailboxes present in their database. By giving full access permission one can open and read the content of any mailbox but cannot send emails from that mailbox.
Join Greg Farro and Ethan Banks from Packet Pushers (http://packetpushers.net/podcast/podcasts/pq-show-93-smart-network-monitoring-paessler-sponsored/) and Greg Ross from Paessler (https://www.paessler.com/prtg) for a discussion about smart network …
Learn how to get help with Linux/Unix bash shell commands. Use help to read help documents for built in bash shell commands.: Use man to interface with the online reference manuals for shell commands.: Use man to search man pages for unknown command…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

713 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question