Solved

Run Linux command in Perl script as different user

Posted on 2007-12-04
4
4,484 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

Why do Marketing keep bothering you?

Is your marketing department constantly asking for new email signature updates? Are they requesting a different design for every department? Do they need yet another banner added? Don’t let it get you down! There is an easy way to manage all of these requests...

Join & Write a Comment

I. Introduction There's an interesting discussion going on now in an Experts Exchange Group — Attachments with no extension (http://www.experts-exchange.com/discussions/210281/Attachments-with-no-extension.html). This reminded me of questions tha…
Resolve Outlook connectivity issues after moving mailbox to new Exchange 2016 server
In this video we show how to create a Shared Mailbox in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.: First we need to log into the Exchange Admin Center. Navigate to the Recipients >> Sha…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

746 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now