6

I'm trying to initialize a session but i get this error:

Warning: session_start() [function.session-start]: open(/tmp/sess_7af3ee9ec1350680bedcf63833d160bd, O_RDWR) failed: Permission denied (13)

The session.path is set to /tmp with 777 perms.

I try to edit the session.path to "0;777;/tmp" but the session files are created with the wrong permissions(only write).

I'm using PHP 5.2 on apache2 and ubuntu 9.10. Any ideas?

4 Answers 4

5

Please verify that the permissions of /tmp really are xx777

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$s = stat('/tmp');
printf('%o', $s[2]);
file_put_contents('/tmp/phptest1234.txt', 'test');
unlink('/tmp/phptest1234.txt');

edit: next try, umask

<?php
echo ' php-umask: ', sprintf('%o', umask()), "\n";
echo ' exec-umask: ', exec('umask'), "\n";
Sign up to request clarification or add additional context in comments.

4 Comments

Your script returns 44777. The session files are written in /tmp but with wrong permissions: php create session files with 100366 permissions. I can write but not read.
It returns: php-umask: 22 exec-umask: 0022
That's odd. If you create a file in /tmp on the shell like e.g. ls -la > /tmp/mytestfile.deleteAtAnyTime does it also have the mode set to 100366?
No, the permissions are correctly 644 only session files are created with wrong perms. Maybe there is a bug like this: bugs.php.net/bug.php?id=31323
2

It seems like you do not have permissions to write to the tmp directory, you need to give it permissions to save a file.

2 Comments

+1: Reminds me of last week when a machine I ran across that someone else set up had /tmp as 0770 instead of 1777 or 1666. Come to think of it, that was a Ubuntu Server too.
It looks like he's already stated that /tmp's perms are set to 777.
2

I had this problem, as well. There was a line in /etc/sysconfig/httpd that was setting the umask improperly, so I commented it out:

#umask 644

All is well now.

Comments

1

I resolve the problem, there was a third party library that sets wrong umask to 777, by deleting it the problem was solved. Thanks for answers.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.