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 [B]apache[/B] [B]apache[/B] 4096 Feb 4 05:16 web drwxrwxrwx 8 [B]web2_AnyUser[/B] 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: # 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 [B]web2_AnyUser[/B] web2 4096 Feb 4 05:16 web drwxrwxrwx 8 [B]web2_AnyUser[/B] 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: 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
Can you become the apache user with the su command and run the commands Code: chown -R web2_AnyUser /var/www/web2/web chgrp -R web2 /var/www/web2/web ? Do you get any errors?
i sent this command: Code: [root@testvirtual ~]# su apache This account is currently not available. i do get an error: "This account is currently not available."
To jnsc: ok, i send this command now: Code: [root@testvirtual ~]# su -s /bin/bash apache bash-3.2$ whoami apache bash-3.2$ im not getting any error anymore. i do see my my prompt changed from # to $ - so that means i can change user to apache. ######################################################################### To falko: so i send the chown command: Code: bash-3.2$ chown web2_AnyUser /var/www/web2/web/ chown: changing ownership of `/var/www/web2/web/': Operation not permitted RESULTS: Yes, i do get error = "Operation not permitted" ######################################################################### To falko: COMMAND RESULTS: Code: [root@testvirtual ~]# grep apache /etc/passwd apache:x:48:48:Apache:/var/www:/sbin/nologin Please Advise, Thanks
Code: [root@testvirtual www]# ls -la /var/www/web2/web/ total 76 drwxrwxrwx 9 apache apache 4096 Feb 4 04:00 . drwxrwxrwx 9 web2_AnyUser web2 4096 Feb 4 04:00 .. -rw-rw-rw- 1 apache apache 237 Apr 17 2009 .htaccess drwxrwxrwx 2 apache apache 4096 May 10 2009 images drwxrwxrwx 2 apache apache 4096 May 10 2009 includes -rw-rw-rw- 1 apache apache 565 Apr 17 2009 index.php -rw-rw-rw- 1 apache apache 1176 May 10 2009 INSTALL.txt -rw-rw-rw- 1 apache apache 2918 Apr 17 2009 oswallpaper-footer.php -rw-rw-rw- 1 apache apache 5202 Apr 17 2009 oswallpaper-header.php -rw-rw-rw- 1 apache apache 15687 May 10 2009 OSWallpaper.sql drwxrwxrwx 2 apache apache 4096 May 10 2009 pages drwxrwxrwx 2 apache apache 4096 May 10 2009 recaptcha drwxrwxrwx 3 apache apache 4096 May 10 2009 theme drwxrwxrwx 8 apache apache 4096 May 10 2009 wallpapers
It's only possible to execute the chown command from the root user. Here is a very interesting reference post http://www.ale.org/pipermail/ale/2007-November/099333.html, but as it's quite long, I will post the part that is interesting for us.