Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #3450

Re: Queuing at job from within php program?

From Jerry Stuckle <jstucklex@attglobal.net>
Newsgroups comp.lang.php
Subject Re: Queuing at job from within php program?
Date 2011-10-17 16:53 -0400
Organization A noiseless patient Spider
Message-ID <j7i4l4$tch$1@dont-email.me> (permalink)
References <j7haab$mh2$1@dont-email.me> <j7hh49$dko$1@dont-email.me> <j7hit4$ore$1@dont-email.me> <j7hm6f$ish$1@dont-email.me> <y_KdnboKrJ7m7gHTnZ2dnUVZ_sadnZ2d@posted.localnet>

Show all headers | View raw


On 10/17/2011 2:27 PM, Robert Heller wrote:
> At Mon, 17 Oct 2011 12:47:08 -0400 Jerry Stuckle<jstucklex@attglobal.net>  wrote:
>
>>
>> On 10/17/2011 11:51 AM, bobm3@worthless.info wrote:
>>> On Mon, 17 Oct 2011 11:20:38 -0400, Jerry Stuckle wrote:
>>>
>>>> On 10/17/2011 9:24 AM, bobm3@worthless.info wrote:
>>>>> Fellow php'ers;
>>>>>
>>>>> I'm having some difficulty getting this to work:  Based on a date/time
>>>>> selected by a user on a web form I would like to use the "at" command
>>>>> to schedule that task.
>>>>>
>>>>> I've tried various php functions (system, exec, passthru) with the same
>>>>> results (return code 1 - which I cannot seem to get the error message
>>>>> from).
>>>>>
>>>>> Here is a sample code snippet:
>>>>>
>>>>> $cmd = "echo \"podcast -c $filename\" | at $hr:$mn $_ampm";
>>>>> passthru("$cmd", $Retcode);
>>>>> echo "$Retcode";
>>>>>
>>>>> returns 1
>>>>>
>>>>> Then I thought that perhaps the 'at' was not reading stdin in this case
>>>>> so I tried a temporary file approach:
>>>>>
>>>>> $cmd =	"echo \"podcast -c $filename\"";
>>>>> file_put_contents($filename.tmp, $cmd); passthru("at $_hr:$_mn $_ampm<
>>>>> $filename.tmp", $_RetVal); echo "$_RetVal";
>>>>>
>>>>> This time it returned 2
>>>>>
>>>>> I've got to be misunderstanding this function.  So, I thought if any of
>>>>> you skilled readers have had luck with doing something like this you
>>>>> may be willing to share.  However, any other suggestions greatly
>>>>> appreciated.
>>>>>
>>>>> Thanks
>>>>
>>>>
>>>> What is actually in $cmd when you execute the passthru command?
>>>>
>>>> What happens when you type this exact output at a command line prompt?
>>>
>>> I've echoed out the contents of $cmd in my testing.  It does contain
>>> exactly what is intended:
>>> echo "podcast -c abc123 | at 10:01 am"
>>>
>>> Also, the command I'm trying to execute works perfectly from the CLI with
>>> the same (appropriate) values.
>>>
>>> I'm thinking that there might be a permissions issue but I'm unable to
>>> obtain the error message from the passthru command.
>>>
>>> I suppose next I will try to create a small php script to emulate this
>>> from the CLI and perhaps them I will see the error (if any).
>>>
>>> Thanks
>>
>> OK, when you enter that exactly from the CLI it works?  Are you
>> executing it as root or another user?
>>
>> Next: the home directory for the web server will be different than the
>> one from the CLI.  Also, the web server will have different permissions.
>>    Usually the web server user will not have permission to access the
>> atjobs directory (/var/spool/cron/atjobs on Debian).
>>
>> Try su'ing (or sudo'ing) to the web server's id, change to the web
>> server's root directory and execute the command.
>
> On a *typical* (eg properly secured) LAMP server, the web server would
> be running as the user 'apache' and the apache user's shell will be set
> to '/sbin/nologin'.  This means that the web server user cannot login to
> a shell.  This implies that you cannot fork() a *shell*:
>
> sauron.deepsoft.com% sudo su apache -l
> This account is currently not available.
>
> In order to run an at command, you need to fork() a shell process.
>
>

It depends on what you're doing.  Many web servers allow you to fork a 
command, for good reasons.  Just because you can execute a command shell 
doesn't mean it's not properly secured.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Queuing at job from within php program? bobm3@worthless.info - 2011-10-17 13:24 +0000
  Re: Queuing at job from within php program? Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-17 11:20 -0400
    Re: Queuing at job from within php program? bobm3@worthless.info - 2011-10-17 15:51 +0000
      Re: Queuing at job from within php program? Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-17 12:47 -0400
        Re: Queuing at job from within php program? Robert Heller <heller@deepsoft.com> - 2011-10-17 13:27 -0500
          Re: Queuing at job from within php program? Jerry Stuckle <jstucklex@attglobal.net> - 2011-10-17 16:53 -0400
      Re: Queuing at job from within php program? "Álvaro G. Vicario" <alvaro.NOSPAMTHANX@demogracia.com.invalid> - 2011-10-18 09:51 +0200
  Re: Queuing at job from within php program? Denis McMahon <denismfmcmahon@gmail.com> - 2011-10-18 03:43 +0000
  Re: Queuing at job from within php program? Erwin Moller <Since_humans_read_this_I_am_spammed_too_much@spamyourself.com> - 2011-10-18 10:12 +0200
    Re: Queuing at job from within php program? bobm3@worthless.info - 2011-10-19 21:40 -0400
      Re: Queuing at job from within php program? SOLVED! bobm3@worthless.info - 2011-10-20 21:21 -0400

csiph-web