View Single Post
  #1  
Old 5th February 2010, 19:54
bigger_travis bigger_travis is offline
Junior Member
 
Join Date: Oct 2005
Location: us
Posts: 25
Thanks: 0
Thanked 0 Times in 0 Posts
Default chown not working with exec()

hello, i have ispconfig 2 running on Centos -

what i'm trying to do:
i am running a php file which installs a script in the web/ directory to install my custom script, the php file renames the web directory

from: /var/www/web2/web
to: /var/www/web2/web_Orginal

then the the php file creates a web directory:

/var/www/web2/web

so when i go to the shell i send the ls command and i can confirm both directories are there, so the script is able to rename the orginal web/ directory and create a new web/ directory (I am using tar to unpack the web/ directory which contains all my script files)

web/
web_Orginal/

however, the new web/ directory is own by apache:

Code:
command: ls -la

OUTPUT:
drwxrwxrwx  8 apache   apache 4096 Feb  4 05:16 web
drwxrwxrwx  8 web2_AnyUser  web2 4096 Feb  4 05:16 web_Orginal
now i try to use exec() function in the php file to change the ower from apache to web2_AnyUser and the group from apache to web2 using this code in the php file:

PHP Code:
# PHP CODE:
# TO CHANGE OWERSHIP:
exec('chown -R web2_AnyUser /var/www/web2/web',$ouput,$result);
exec('chgrp -R web2 /var/www/web2/web',$ouput,$result);



i dont get any errors, and the value of $result = 1

so when i go to the shell, i do an ls -la and it does not change the owership of the web/ directory, it still shows apache

what i want to acheive is to change the owershipt to look like this:

Code:
command: ls -la

OUTPUT:
drwxrwxrwx  8 web2_AnyUser  web2 4096 Feb  4 05:16 web
drwxrwxrwx  8 web2_AnyUser  web2 4096 Feb  4 05:16 web_Orginal
do you have any suggestions. i think you are my best resource for this. i was looking at your code in /root/ispconfig/scripts/lib/config.lib.php and it shows this code on line 690:

PHP Code:
  if($user["user_admin"]){
    
//exec("usermod -G web".$web_doc_id." ".$user_username."");
    // alten admin herausfinden
    
$old_admin_uid fileowner($web_path);
    
$mod->system->usermod($user_username"web".$web_doc_id);
    
exec("chown $user_username $web_path &> /dev/null");
    
//exec("chown $user_username $web_path/cgi-bin &> /dev/null");
    
exec("chown -R --from=$old_admin_uid $user_username $web_path/cgi-bin &> /dev/null");
    
exec("chown $user_username $web_path/log &> /dev/null");
    
exec("chown $user_username $web_path/ssl &> /dev/null");
    
exec("chown $user_username $web_path/user &> /dev/null");
    
//exec("chown $user_username $web_path/web &> /dev/null");
    
exec("chown -R --from=$old_admin_uid $user_username $web_path/web &> /dev/null");





i guess im trying to do the same, but im not sure how you did it.

if you have any suggestion, please advise,

Thanks for all your support
__________________
Free Wallpapers - Wallpaper Website Server. Trying to get my server
Reply With Quote
Sponsored Links