I've read a few questions about the same problem but i couldn't find any answer that works. I have a "mkdir permission denied" problem in PHP. I've tryed to change a few directories and users permissions, but it still doesn't work.
So, the erro is: "Warning: mkdir(): Permission denied in /www/denunciar/private/utilits.php on line 52"
This is my Docker-compose yml file:
services:
webserver:
image: nginx:stable
container_name: nginx
restart: always
ports:
- 80:80
volumes:
- ./www:/www
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
php:
image: php:8-fpm
container_name: php-fpm
volumes:
- ./www:/www
links:
- mysql-db-gestaofisc
mysql-db-gestaofisc:
image: mysql:5.7
container_name: mysql
ports:
- "3306:3306"
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
MYSQL_ROOT_PASSWORD: *****
MYSQL_DATABASE: dbname
MYSQL_USER: uname
MYSQL_PASSWORD: *****
links:
- phpmyadmin
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8084:80"
restart: always
environment:
PMA_HOST: mysql-db-gestaofisc
In the Nginx container, i set root group and root user as www directory's owner and nginx user in root group:
# pwd
/
# ls -la
total 88
drwxr-xr-x 1 root root 4096 Aug 9 19:10 .
drwxr-xr-x 1 root root 4096 Aug 9 19:10 ..
-rwxr-xr-x 1 root root 0 Aug 9 19:10 .dockerenv
drwxr-xr-x 2 root root 4096 Aug 1 00:00 bin
drwxr-xr-x 2 root root 4096 Jun 30 21:35 boot
drwxr-xr-x 5 root root 340 Aug 11 16:45 dev
drwxr-xr-x 1 root root 4096 Aug 2 05:18 docker-entrypoint.d
-rwxrwxr-x 1 root root 1202 Aug 2 05:17 docker-entrypoint.sh
drwxr-xr-x 1 root root 4096 Aug 9 19:47 etc
drwxr-xr-x 2 root root 4096 Jun 30 21:35 home
drwxr-xr-x 1 root root 4096 Aug 1 00:00 lib
drwxr-xr-x 2 root root 4096 Aug 1 00:00 lib64
drwxr-xr-x 2 root root 4096 Aug 1 00:00 media
drwxr-xr-x 2 root root 4096 Aug 1 00:00 mnt
drwxr-xr-x 2 root root 4096 Aug 1 00:00 opt
dr-xr-xr-x 357 root root 0 Aug 11 16:45 proc
drwx------ 2 root root 4096 Aug 1 00:00 root
drwxr-xr-x 1 root root 4096 Aug 11 16:45 run
drwxr-xr-x 2 root root 4096 Aug 1 00:00 sbin
drwxr-xr-x 2 root root 4096 Aug 1 00:00 srv
dr-xr-xr-x 11 root root 0 Aug 11 16:45 sys
drwxrwxrwt 1 root root 4096 Aug 2 05:18 tmp
drwxr-xr-x 1 root root 4096 Aug 1 00:00 usr
drwxr-xr-x 1 root root 4096 Aug 1 00:00 var
drwxrwxrwx 1 root root 512 Aug 9 19:27 www
# groups nginx
nginx : nginx root
#
Also, in PHP container i did the same with www directory and www-data user:
# pwd
/
# ls -la
total 80
drwxr-xr-x 1 root root 4096 Aug 9 19:10 .
drwxr-xr-x 1 root root 4096 Aug 9 19:10 ..
-rwxr-xr-x 1 root root 0 Aug 9 19:10 .dockerenv
drwxr-xr-x 1 root root 4096 Aug 2 06:17 bin
drwxr-xr-x 2 root root 4096 Jun 30 21:35 boot
drwxr-xr-x 5 root root 340 Aug 11 16:45 dev
drwxr-xr-x 1 root root 4096 Aug 11 16:42 etc
drwxr-xr-x 2 root root 4096 Jun 30 21:35 home
drwxr-xr-x 1 root root 4096 Aug 2 06:17 lib
drwxr-xr-x 2 root root 4096 Aug 1 00:00 lib64
drwxr-xr-x 2 root root 4096 Aug 1 00:00 media
drwxr-xr-x 2 root root 4096 Aug 1 00:00 mnt
drwxr-xr-x 2 root root 4096 Aug 1 00:00 opt
dr-xr-xr-x 358 root root 0 Aug 11 16:45 proc
drwx------ 1 root root 4096 Aug 4 21:10 root
drwxr-xr-x 3 root root 4096 Aug 1 00:00 run
drwxr-xr-x 2 root root 4096 Aug 1 00:00 sbin
drwxr-xr-x 2 root root 4096 Aug 1 00:00 srv
dr-xr-xr-x 11 root root 0 Aug 11 16:45 sys
drwxrwxrwt 1 root root 4096 Aug 11 16:49 tmp
drwxr-xr-x 1 root root 4096 Aug 1 00:00 usr
drwxr-xr-x 1 root root 4096 Aug 2 06:17 var
drwxrwxrwx 1 root root 512 Aug 9 19:27 www
# groups www-data
www-data : www-data root
#
After that, as both users are in root group, they should have all permissions, don't they ?
Related
I am completely new to docker. Just trying to run WordPress within a docker instance to learn more about it.
./public_html/ - has WordPress files and from the domain, I am able to access the installer. However the WordPress installer cant update wp-config.php within docker - as below error.
Unable to write to wp-config.php file.
version: '3'
services:
web:
image: webdevops/php-apache:7.2
container_name: web
restart: always
environment:
- PHP_DISPLAY_ERRORS=1
- PHP_MEMORY_LIMIT=2048M
- PHP_MAX_EXECUTION_TIME=300
- PHP_POST_MAX_SIZE=500M
- PHP_UPLOAD_MAX_FILESIZE=256M
volumes:
- ./public_html/:/app
ports:
- "80:80"
- "443:443"
links:
- mysql
mysql:
image: mariadb:10
container_name: mysql
restart: always
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
volumes:
- db-data:/var/lib/mysql
phpmyadmin:
container_name: phpmyadmin
restart: always
image: phpmyadmin/phpmyadmin:latest
# environment:
# - MYSQL_ROOT_PASSWORD=root
# - PMA_USER=root
# - PMA_PASSWORD=root
ports:
- "8080:80"
links:
- mysql:db
depends_on:
- mysql
volumes:
db-data:
external: false
Now WordPress allow me to create the config.php. installation went on. I just tried to upload a plugin to test and I get below error. which I anticipated.
Unable to create directory wp-content/uploads/2021/02. Is its parent
directory writable by the server?
I logged into the docker "docker exec -it 51af15ed3678 bash" to check file permission.
root#51af15ed3678:/# ls -lart
total 104
drwxr-xr-x 2 root root 4096 Nov 22 12:37 boot
drwxr-xr-x 2 root root 4096 Dec 9 23:22 srv
drwxr-xr-x 2 root root 4096 Dec 9 23:22 mnt
drwxr-xr-x 2 root root 4096 Dec 9 23:22 media
drwxr-xr-x 2 root root 4096 Dec 9 23:22 lib64
drwx------ 2 root root 4096 Feb 27 22:12 entrypoint.d
lrwxrwxrwx 1 root root 28 Feb 27 22:12 entrypoint.cmd -> /opt/docker/bin/entrypoint.d
lrwxrwxrwx 1 root root 29 Feb 27 22:12 entrypoint -> /opt/docker/bin/entrypoint.sh
drwxr-xr-x 1 root root 4096 Feb 27 22:12 home
drwx------ 1 root root 4096 Feb 27 22:31 root
drwxr-xr-x 1 root root 4096 Feb 27 22:36 sbin
drwxr-xr-x 1 root root 4096 Feb 27 22:36 lib
drwxr-xr-x 1 root root 4096 Feb 27 22:36 bin
drwxr-xr-x 1 root root 4096 Feb 27 22:36 var
drwxr-xr-x 1 root root 4096 Feb 27 22:36 usr
drwxr-xr-x 1 root root 4096 Feb 27 22:36 opt
drwxr-xr-x 1 root root 4096 Feb 28 13:36 etc
-rwxr-xr-x 1 root root 0 Feb 28 13:36 .dockerenv
dr-xr-xr-x 197 root root 0 Feb 28 13:36 proc
dr-xr-xr-x 13 root root 0 Feb 28 13:36 sys
lrwxrwxrwx 1 root root 12 Feb 28 13:36 docker.stdout -> /proc/1/fd/1
lrwxrwxrwx 1 root root 12 Feb 28 13:36 docker.stderr -> /proc/1/fd/2
srwx------ 1 root root 0 Feb 28 13:36 .supervisor.sock
drwxr-xr-x 5 root root 360 Feb 28 13:36 dev
drwxr-xr-x 1 root root 4096 Feb 28 13:36 run
drwxr-xr-x 5 root root 4096 Feb 28 17:24 app
drwxr-xr-x 1 root root 4096 Feb 28 17:28 ..
drwxr-xr-x 1 root root 4096 Feb 28 17:28 .
root#51af15ed3678:/# cd app
root#51af15ed3678:/app# ls -lart
total 32876
-rwxr-xr-x 1 root root 3300 Feb 6 2020 wp-load.php
-rwxr-xr-x 1 root root 2496 Feb 6 2020 wp-links-opml.php
-rwxr-xr-x 1 root root 2913 Feb 6 2020 wp-config-sample.php
-rwxr-xr-x 1 root root 351 Feb 6 2020 wp-blog-header.php
-rwxr-xr-x 1 root root 405 Feb 6 2020 index.php
-rwxr-xr-x 1 root root 19915 Feb 12 2020 license.txt
-rwxr-xr-x 1 root root 8509 Apr 14 2020 wp-mail.php
-rwxr-xr-x 1 root root 3236 Jun 8 2020 xmlrpc.php
-rwxr-xr-x 1 root root 7278 Jun 26 2020 readme.html
-rwxr-xr-x 1 root root 7101 Jul 28 2020 wp-activate.php
-rwxr-xr-x 1 root root 3939 Jul 30 2020 wp-cron.php
-rwxr-xr-x 1 root root 31337 Sep 30 21:54 wp-signup.php
-rwxr-xr-x 1 root root 4747 Oct 8 21:15 wp-trackback.php
-rwxr-xr-x 1 root root 2328 Oct 8 21:15 wp-comments-post.php
-rwxr-xr-x 1 root root 49831 Nov 9 10:53 wp-login.php
-rwxr-xr-x 1 root root 20975 Nov 12 14:43 wp-settings.php
drwxr-xr-x 25 root root 12288 Feb 22 15:10 wp-includes
drwxr-xr-x 4 root root 4096 Feb 22 15:10 wp-content
drwxr-xr-x 9 root root 4096 Feb 22 15:10 wp-admin
-rwxr-xr-x 1 root root 16712083 Feb 22 15:10 latest.zip.1
-rwxr-xr-x 1 root root 16712083 Feb 22 15:10 latest.zip
-rw-r--r-- 1 root root 3181 Feb 28 17:24 wp-config.php
drwxr-xr-x 5 root root 4096 Feb 28 17:24 .
drwxr-xr-x 1 root root 4096 Feb 28 17:28 ..
root#51af15ed3678:/app#
Any clue will be a great help. Thank you.
Regards,
Dwija
The image is running the daemon under user application (UID 1000; GID 1000) so make sure all files are owned by the user application not root
I think I am having problems with the max children limit for php-fpm. I am trying to find something in the logs. Where can I find php-fpm.log on my server? Running phpinfo() shows this:
I cannot find anything related to php-fpm in /var/log/.
I am also trying to find the php-fpm.conf that is mentioned at https://www.php.net/manual/en/install.fpm.configuration.php. Thank you.
UPDATE 1: I found at https://github.com/rlerdorf/php7dev/issues/48 that it asks to edit /usr/local/etc/php-fpm.d/www.conf. In my case, I cannot find that file:
root#jai [/usr/local/etc]# pwd
/usr/local/etc
root#jai [/usr/local/etc]# ls -al
total 8
drwxr-xr-x. 2 root root 4096 Sep 23 2011 ./
drwxr-xr-x. 15 root root 4096 Apr 7 15:02 ../
Do I need to create it at /usr/local/etc/php-fpm.d/www.conf?
UPDATE 2: I see I have a folder called ApachePHPFPM but the file inside (default_accounts_to_fpm) is empty:
root#jai [/var/cpanel/ApachePHPFPM]# pwd
/var/cpanel/ApachePHPFPM
root#jai [/var/cpanel/ApachePHPFPM]# ls -al
total 16
drwxr-xr-x 2 root root 4096 Mar 26 04:44 ./
drwx--x--x 108 root root 12288 Apr 17 13:44 ../
-rw-r--r-- 1 root root 0 Mar 26 04:44 default_accounts_to_fpm
root#jai [/var/cpanel/ApachePHPFPM]#
UPDATE 3: My server had this file:
/usr/local/cpanel/etc/php-fpm.conf
The file contains this:
; Error log file
; Default Value: /var/log/php-fpm.log
error_log = /usr/local/cpanel/logs/php-fpm/error.log
That means that my error logs for php-fpm are located in this file: /usr/local/cpanel/logs/php-fpm/error.log.
I navigated to /usr/local/cpanel/logs/php-fpm/ but I could not find error.log:
root#jai [/usr/local/cpanel/etc]# cd /usr/local/cpanel/logs/php-fpm/
root#jai [/usr/local/cpanel/logs/php-fpm]# ls -al
total 8
drwx------ 2 root root 4096 Mar 30 2018 ./
drwx--x--x 6 root root 4096 Apr 16 15:24 ../
root#jai [/usr/local/cpanel/logs/php-fpm]#
In /opt/cpanel/ea-php73/root/etc/php-fpm.conf I found this line:
error_log = /opt/cpanel/ea-php73/root/usr/var/log/php-fpm/error.log
I see the error log files there:
root#jai [/opt/cpanel/ea-php73/root/usr/var/log/php-fpm]# pwd
/opt/cpanel/ea-php73/root/usr/var/log/php-fpm
root#jai [/opt/cpanel/ea-php73/root/usr/var/log/php-fpm]# ls -al
total 151456
drwxrwx--- 2 nobody root 4096 Apr 14 17:36 ./
drwxr-xr-x 3 root root 4096 Mar 26 04:42 ../
-rw------- 1 root root 31536068 Apr 17 17:05 error.log
-rw------- 1 root root 32102325 Mar 29 03:26 error.log-20200329
-rw------- 1 root root 51453659 Apr 5 03:36 error.log-20200405
-rw------- 1 root root 39966549 Apr 12 02:55 error.log-20200412
root#jai [/opt/cpanel/ea-php73/root/usr/var/log/php-fpm]#
I was following this video https://www.youtube.com/watch?v=gC8sLGB8SSM&index=77&list=PL442FA2C127377F07 . I am using fedora. I am able to read a file using this code:
$fileHandle = fopen('test.txt', 'r') or die('Unable to open test.txt');
echo fread($fileHandle, filesize('test.txt'));
But when I change 'r' to 'w', it dies and prints 'Unable to open test.txt'.
To check that I have permissions to read and write to a file, I typed this on terminal, ls -l /var/www/html. It showed:
total 8
-rwxr-xr-x. 1 Hemil apache 131 Jul 6 11:09 index.php
-rw-rw-r--. 1 Hemil Hemil 12 Jul 6 11:09 test.txt
I noticed that apache did not have the permission to read and write to a file, I did this: sudo chown Hemil:apache /var/www/html. But again when i checked the permissions, it prints the same as above.
EDIT: I forgot to add that I am not on a server. I am on localhost.
EDIT: On #Nic3500 's recommendation, i add the following:
ls -al /var:
total 108
drwxr-xr-x. 23 root root 4096 Apr 25 12:09 .
dr-xr-xr-x. 18 root root 4096 Jul 7 08:17 ..
drwxr-xr-x. 2 root root 4096 Apr 25 12:06 account
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 adm
drwxr-xr-x. 17 root root 4096 Jul 5 10:21 cache
drwxr-xr-x. 2 root root 4096 May 31 10:46 crash
drwxr-xr-x. 3 root root 4096 Apr 25 12:06 db
drwxr-xr-x. 3 root root 4096 Apr 25 12:06 empty
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 ftp
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 games
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 gopher
drwxr-xr-x. 3 root root 4096 Jun 15 03:23 kerberos
drwxr-xr-x. 59 root root 4096 Jul 5 11:55 lib
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 local
lrwxrwxrwx. 1 root root 11 Apr 25 12:03 lock -> ../run/lock
drwxr-xr-x. 18 root root 4096 Jul 5 11:52 log
drwx------. 2 root root 16384 Jul 4 22:54 lost+found
lrwxrwxrwx. 1 root root 10 Feb 7 15:11 mail -> spool/mail
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 nis
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 opt
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 preserve
lrwxrwxrwx. 1 root root 6 Apr 25 12:03 run -> ../run
drwxr-xr-x. 11 root root 4096 Apr 25 12:06 spool
drwxrwxrwt. 16 root root 4096 Jul 7 18:26 tmp
-rw-rw-r--. 1 root root 63 Apr 25 12:09 .updated
drwxr-xr-x. 4 root root 4096 May 1 14:24 www
drwxr-xr-x. 2 root root 4096 Feb 7 15:11 yp
ls -al /var/www
drwxr-xr-x. 4 root root 4096 May 1 14:24 .
drwxr-xr-x. 23 root root 4096 Apr 25 12:09 ..
drwxr-xr-x. 2 root root 4096 May 1 14:24 cgi-bin
drwxr-xr-x. 2 Hemil apache 4096 Jul 6 16:17 html
ls -al /var/www/html
drwxr-xr-x. 2 Hemil apache 4096 Jul 6 16:17 .
drwxr-xr-x. 4 root root 4096 May 1 14:24 ..
-rwxr-xr-x. 1 Hemil apache 102 Jul 7 16:55 index.php
-rw-rw-rw-. 1 Hemil apache 12 Jul 6 11:09 test.txt
Here is my .htaccess content:
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /mtd/index.php?page=$1 [L]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /mtd/index.php?page=$1&destination=$2&package=$3 [L]
The following link works correctly:
http://localhost/mtd/our-company.html [Rewrite Rule 1]
The page successfully passes the $_GET values index.php?page=page-name
Yet, the following link is Showing 404 Error
http://localhost/mtd/tours/nepal/index.html [Rewrite Rule 2]
This URL should pass $_GET values like:
index.php?page=tours&destination=nepal&package=index
This was working on Windows 8.1 with XAMPP Server and Remote Server with cPanel, but after I shifted to Ubuntu (Latest) with LAMP Stack, it is no longer working.
after executing command ls -al
root#Neeraz:/var/www/mtd# ls -al
total 1740
drwxr-xr-x 15 neeraz root 4096 Jan 28 13:54 .
drwxrwxrwx 70 root root 4096 Jan 30 14:40 ..
drwxrwxrwx 10 root root 4096 Dec 17 15:56 admin
-rwxrwxrwx 1 root root 15992 Oct 23 12:25 ahome.html
-rwxrwxrwx 1 root root 3226 Nov 24 14:23 booknow.php
drwxrwxrwx 3 root root 4096 Jan 6 22:45 css
-rwxrwxrwx 1 root root 621280 Aug 15 15:56 delight-mockup.jpg
-rwxrwxrwx 1 root root 2531 Dec 10 17:47 find.php
-rwxrwxrwx 1 root root 1544 Nov 24 15:20 HandleTour.php
-rwxrwxrwx 1 root root 346 Feb 3 10:28 .htaccess
drwxrwxrwx 3 root root 4096 Jan 5 15:54 images
drwxrwxrwx 2 root root 4096 Oct 24 18:59 img
-rwxrwxrwx 1 root root 12098 Dec 16 14:00 index1.php
-rwxrwxrwx 1 root root 12372 Jan 29 06:20 index.php
drwxrwxrwx 2 root root 4096 Dec 23 15:15 jquery
drwxrwxrwx 3 root root 4096 Jan 28 13:58 Libs
-rwxrwxrwx 1 root root 13156 Jan 28 14:13 MainPage.php
-rwxrwxrwx 1 root root 1211 Jan 5 22:29 menu0.php
-rw-rw-r-- 1 neeraz neeraz 642 Jan 28 13:57 menulayout.php
-rwxrwxrwx 1 root root 476327 Aug 16 16:08 mt-delight1.jpg
-rwxrwxrwx 1 root root 474429 Aug 16 16:07 mt-delight.jpg
drwxrwxr-x 3 neeraz neeraz 4096 Jan 28 11:35 nbproject
-rwxrwxrwx 1 root root 9892 Sep 19 10:46 nepal.html
drwxrwxrwx 2 root root 4096 Jan 7 00:27 _notes
-rwxrwxrwx 1 root root 684 Oct 25 09:00 PagesLoader.php
-rwxrwxrwx 1 root root 1189 Nov 21 00:00 pie.php
drwxrwxrwx 2 root root 4096 Oct 29 18:16 SpryAssets
-rwxrwxrwx 1 root root 45 Dec 17 16:02 test.php
drwxrwxrwx 2 root root 4096 Dec 29 14:19 TourGallery
-rwxrwxrwx 1 root root 9266 Sep 5 13:29 tour.html
-rwxrwxrwx 1 root root 18333 Jan 5 14:05 tours.php
drwxrwxrwx 2 root root 4096 Oct 27 16:18 TrekkingMap
drwxrwxrwx 3 root root 4096 Dec 29 14:19 uploaded
drwxrwxrwx 2 root root 4096 Dec 15 19:39 uploads
root#Neeraz:/var/www/mtd#
You need correct RewriteBase and make to place this rule in /mtd/.htaccess:
RewriteEngine On
RewriteBase /mtd/
RewriteRule ^([^/]+)/([^/]+)/([^/.]+)\.html$ index.php?page=$1&destination=$2&package=$3 [L,QSA]
RewriteRule ^([^/.]+)\.html$ index.php?page=$1 [L,QSA]
I have a really strange error. PHP can't read a file that do exists... Some ideas? I have not SELinux installed. I'm using fedora 17 and php 5.4.
I already try everything I know, but the problem still remains.
[root#sqd var]# ls -lia
total 92
8194 drwxrwxrwx. 23 root root 4096 ago 17 10:30 .
2 dr-xr-xr-x. 19 root root 4096 ago 13 16:00 ..
32139 drwxr-xr-x. 2 root root 4096 may 22 13:42 account
288 drwxr-xr-x. 2 root root 4096 feb 3 2012 adm
13 drwxr-xr-x. 14 root root 4096 ago 8 10:26 cache
796005 drwxr-xr-x 2 root root 4096 feb 6 2012 cvs
289 drwxr-xr-x. 3 root root 4096 ago 21 18:07 db
290 drwxr-xr-x. 3 root root 4096 may 22 13:42 empty
263682 drwxr-xr-x. 3 root root 4096 ago 7 11:15 ftp
291 drwxr-xr-x. 2 root root 4096 feb 3 2012 games
35931 drwxrwx--T. 2 root gdm 4096 jun 8 16:05 gdm
292 drwxr-xr-x. 2 root root 4096 feb 3 2012 gopher
15 drwxr-xr-x. 45 root root 4096 ago 10 10:42 lib
296 drwxr-xr-x. 2 root root 4096 feb 3 2012 local
308 lrwxrwxrwx. 1 root root 11 may 22 13:39 lock -> ../run/lock
12 drwxr-xr-x. 14 root root 4096 ago 26 03:17 log
297 lrwxrwxrwx. 1 root root 10 may 22 13:39 mail -> spool/mail
298 drwxr-xr-x. 2 root root 4096 feb 3 2012 nis
931987 drwxrwxrwx 3 nobody nobody 4096 ago 17 10:32 nodejs
299 drwxr-xr-x. 2 root root 4096 feb 3 2012 opt
300 drwxr-xr-x. 2 root root 4096 feb 3 2012 preserve
307 lrwxrwxrwx. 1 root root 6 may 22 13:39 run -> ../run
301 drwxr-xr-x. 15 root root 4096 may 22 13:43 spool
305 drwxrwxrwx. 5 nobody nobody 4096 ago 30 14:13 tmp
262637 drwxr-xr-x. 7 root root 4096 ago 7 11:20 www
306 drwxr-xr-x. 2 root root 4096 feb 3 2012 yp
[root#sqd var]# ls -lia tmp/
total 216
305 drwxrwxrwx. 5 nobody nobody 4096 ago 30 14:13 .
8194 drwxrwxrwx. 23 root root 4096 ago 17 10:30 ..
3030 -rwxrwxrwx 1 nobody nobody 199397 ago 30 14:13 file_thumb_5363_1_0.jpg
But
<?php
highlight_file(__FILE__);
var_dump(file_exists('/var/tmp/file_thumb_5363_1_0.jpg'));
print out:
bool(false)
Fedora 16 introduced the concept of a "private tmp" /tmp and /var/tmp I would throw my 2 cents on that direction.
From the manual:
2.3.3. Services Private /tmp
A number of services managed by systemd have been modified to make use of its ability to provide them with a
private /tmp directory. Privileged services using /tmp and /var/tmp
have previously been found to be open to being interfered with by
unprivileged users, potentially leading to privilege escalation. Using
private /tmp directories for services prevents this style of exploit.
The directive added to the systemd unit files for the modified
services is:
[Service]
PrivateTmp=true