Hello Shuja, Thank you for your reply. Unfortunately CHMOD doesnt work for me. I get warning messages like: Warning: chmod(): Operation not permitted
I gather that the reason is that a PHP script has a different owner than halliday, so unless I manually grant write permission to ALL USERS, chmod will not work. Te PHP manual says: .. The current user is the user under which PHP runs. It is probably not the same user you use for normal shell or FTP access. and : When safe mode is enabled, PHP checks whether the files or directories you are about to operate on have the same UID (owner) as the script that is being executed. On my server though safe mode is not enabled !! And in a tutorial on Zend website, File Creation and Editing with Filesystem Functions http://www.zend.com/zend/tut/tutorial-jenkins2.php it says: <!-- Excerpts --> Permissions It is important to remember a few key things when working with PHP and file creation. PHP runs via your webserver and therefore has the same rights as your webserver. Since most webservers do not run with super-user status (root in Unix/Linux, or administrator in Windows) you will need to make sure the folders and files you want to edit allow the webserver write access. If you are running Unix or Linux with Apache you will need to change the owner of your files to nobody or www depending on your install. <!-- --> It goes on to suggest changing the owner of the folder or file to 'www' or 'nobody' by doing this: <!-- --> File: chown www file.txt Directory: chown www folder1/ This will change the owner of the file file.txt (or the directory folder1/) to www, thus allowing PHP via Apache to edit the file. <!-- --> I think tt would solve this problem if one could create a group and .. somehow .. in the script, tell the server that I am a member of that group. Then one could manually change the mode of /classes/ folder to 0775 just once. One last point: I read on php.net website http://pl2.php.net/features.safe-mode someone talking about fixing the sticky bit. It says: "I use mkdir just fine. You just have to make sure you set sticky bits on the directory you are creating the files in. Look at "man chmod" clipping: 4000 (the setuid bit). Executable files with this bit set will run with effective uid set to the uid of the file owner. Directories with this bit set will force all files and sub-directories created in them to be owned by the directory owner and not by the uid of the creating process, if the underlying file system supports this feature: see chmod(2) and the suiddir option to mount(8)" How is this done? Is it via php script or Cpanel? thanks, David --- Shuja Shabandri <[EMAIL PROTECTED]> wrote: --------------------------------- Hi David, Whenever your script needs to write to a folder, you can chmod that folder from php <?php chmod ("/path/to/folder",intval(777,8)); ?> and then when you are done writing to the folder. chmod it back to 644 or whatever needed. Regards Shuja Shabandri On 1/3/06, David Halliday <[EMAIL PROTECTED]> wrote: > > Hi > > Is there any way at all to enable users of a php > script to create folders and files on linux/apache > servers? > > Briefly, I have a folder called halliday with a > subfolder classes: and I want students from 5 classes > to register and login. Now two students from each > class will be granted permission to create folders > (e.g. class1 etc.. see below) and files (using mkdir + > fwrite), so it would look something like this: > > /halliday/classes/class1 > /halliday/classes/class2 > /halliday/classes/class3 > /halliday/classes/class4 > /halliday/classes/class5 > > I have been struggling with this for two weeks now > without success. To cut a long story short .. the only > way I could do this is by manually changing the > permission on the folder 'classes' to 777 (or 0777) .. > ie READ + WRITE + EXECUTE for OWNER - GROUP - ALL > USERS. Now I think this is a security risk because > some students are worse than real life hackers and > leaving it like that is not really a good idea. What I > want is to create a group somehow and grant permission > to the group only .. not all users. Then when members > login the script will 'know' who has the right > permission. CAn this be done via php and mysql? > > Thank you, > David -- ___________________________________________________________ Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com The php_mysql group is dedicated to learn more about the PHP/MySQL web database possibilities through group learning. Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/php_mysql/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
