I'm not sure what I'm doing wrong...

In changetime.php:

        $binDate = date ("mdhiY",
mktime($hour,$minute,0,$month,$day,$year));
        $execString = "/usr/bin/sudo /bin/date ".$binDate."<BR>";
        //echo $execString."<BR>";
        exec($execString); 

And then in /etc/sudoers:

        nobody  ALL=NOPASSWD: /bin/date  

If I run the command (as daevid) "/usr/bin/sudo /bin/date 011304042003"
for example, it works fine.

Apache is running as nobody it seems:

[daevid=pts/6]4:10am@dev:{/www/htdocs}> ps aux | grep "httpd"
root       590  0.0  1.5  4996 1988 ?        S    Feb12   0:00
/www/bin/httpd -D
nobody     592  0.0  2.9  5396 3704 ?        S    Feb12   0:01
/www/bin/httpd -D
nobody     593  0.0  3.0  5524 3804 ?        S    Feb12   0:00
/www/bin/httpd -D
nobody     594  0.0  3.0  5556 3856 ?        S    Feb12   0:01
/www/bin/httpd -D

Sooooo.... What is the problem? Ideas?

> -----Original Message-----
> From: Marek Kilimajer [mailto:[EMAIL PROTECTED]] 
> Sent: Thursday, February 13, 2003 3:43 AM
> To: Daevid Vincent
> Cc: [EMAIL PROTECTED]
> Subject: Re: [PHP] How can I have PHP set the linux system date/time?
> 
> 
> You need root priviledges, that means /bin/date must run as root. You 
> can use sudo
> 
> Daevid Vincent wrote:
> 
> >Yep, I am trying to have a php web page change the linux system
> >date/time, but obviously running into the snag that /bin/date, while
> >"chmod 775" doesn't allow a user to set the date/time. Why is that,
> >given the permissions? Sure it makes sense, but it's 
> annoying. Ideas on
> >how to circumvent this problem? 
> >
> >-rwxr-xr-x    1 root     root        26780 Jul 23  2001 /bin/date
> >
> >Seems to me that anyone should be able to use it then right? Where is
> >the "write" portion defined? The 'info date' page says, "You 
> must have
> >appropriate privileges to set the system clock." But it 
> doesn't say what
> >that is or how to change them.
> >
> >If anyone cares, here's a nice bit-o-code:
> >
> ><?php
> >     if ($year == "") $year = date("Y");
> >     if ($month == "") $month = date("m");
> >     if ($day == "") $day = date("d");
> >     if ($hour == "") $hour = date("h");
> >     if ($minute == "") $minute = date("i");
> >     
> >     $NewDateTime = date ("m/d/Y H:i", mktime
> >($hour,$minute,0,$month,$day,$year));
> >
> >     $binDate = date ("mdhiY", mktime
> >($hour,$minute,0,$month,$day,$year));
> >     exec("/bin/date ".$binDate); //TODO: um, yeah, how do you expect
> >this to work? you have to be root to do this!!!!
> >?>
> ><CENTER>
> ><table border=0 class=componentBox>
> ><TR><TD COLSPAN=8 class=Header>Change Time / Date</TD></TR>
> ><TR>
> ><FORM ACTION="<?=$SCRIPT_NAME?>" METHOD="POST">
> ><TD>
> ><TABLE BORDER=0>
> ><TR><TD class=Menu>New Date</TD><TD>
> >             <select name="month">
> >     <?php
> >             for($i = 1; $i <= 12; $i++)
> >             {
> >                     echo "<option";
> >                             if ($month == $i) echo " SELECTED";
> >                     printf(">%02d\n",$i);
> >             }
> >     ?>
> >     </select> / 
> >     <select name="day">
> >     <?php
> >             for($i = 1; $i <= 31; $i++)
> >             {
> >                     echo "<option";
> >                             if ($day == $i) echo " SELECTED";
> >                     printf(">%02d\n",$i);
> >             }
> >     ?>
> >     </select> / 
> >     <select name="year">
> >             <option <?php if ($year == "2003") echo " SELECTED";
> >?>>2003
> >             <option <?php if ($year == "2004") echo " SELECTED";
> >?>>2004
> >             <option <?php if ($year == "2005") echo " SELECTED";
> >?>>2005
> >             <option <?php if ($year == "2006") echo " SELECTED";
> >?>>2006
> >     </select>
> ></TR>
> ><TR><TD class=Menu>New Time</TD><TD>
> >     <select name="hour">
> >     <?php
> >             for($i = 0; $i <= 23; $i++)
> >             {
> >                     echo "<option";
> >                             if ($hour == $i) echo " SELECTED";
> >                     printf(">%02d\n",$i);
> >             }
> >     ?>
> >     </select> : 
> >     <select name="minute">
> >     <?php
> >             for($i = 0; $i <= 59; $i++)
> >             {
> >                     echo "<option";
> >                             if ($minute == $i) echo " SELECTED";
> >                     printf(">%02d\n",$i);
> >             }
> >     ?>
> >     </select>
> ></TR>
> >
> >
> ><TR><TD COLSPAN=2 ALIGN=RIGHT>
> ><INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="Set Time / Date" 
> class=button>
> ></TD></FORM></TR>
> ></TABLE>
> ></TD></TR></TABLE><p>
> >
> >
> ><?php
> >     if (!checkdate($month,$day,$year)) print "\n<P><B>You entered an
> >invalid date, so it was converted to ".$NewDateTime."</B><P>\n";
> >?>
> >
> >
> >  
> >
> 


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to