$execString = "/usr/bin/sudo /bin/date ".$binDate."<BR>";
^^^^^
I believe the problem is here
Daevid Vincent wrote:
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