
He montado un recurso compartido NFS desde un servidor Windows 2012 en un servidor web Centos7 que tengo.
Quiero que mi servidor web cree y lea archivos del recurso compartido NFS. Anteriormente tuve una solución similar en Windows 2008 y Centos6, pero tengo problemas después de actualizar los servidores.
UID y GID están configurados en las opciones NFS de W2012 y son correctos.
[root@centos external]# ll
drwxrwxrwx 2 apache www-data 4096 Sep 17 16:15 NFSShare
[root@centos external]# df -h
windowsserver:/NFSShare 50G 19G 31G 38% /var/www/external/NFSShare
[root@centos external]# getfacl NFSShare/
# file: NFSShare/
# owner: apache
# group: www-data
user::rwx
group::rwx
other::rwx
El recurso compartido NFS y sus permisos funcionan con el usuario root.
[root@centos NFSShare]# touch test.txt
[root@centos NFSShare]# ll
total 1
-rwxrwxrwx 1 apache www-data 8 Sep 17 16:15 test2.txt
-rw-r--r-- 1 apache www-data 0 Sep 24 11:10 test.txt
Pero cuando intento leer o escribir desde mi sitio web con PHP, me deniegan el permiso.
Código PHP (intentando crear una carpeta y leer un archivo):
// Try create a folder
mkdir('/var/www/external/NFSShare/123');
// Try to read from file
$file = '/var/www/external/NFSShare/test2.txt';
$homepage = file_get_contents($file);
echo $homepage;
Registro de errores de PHP:
[root@centos external]# tail /var/log/httpd/website-error_log
[Thu Sep 24 10:21:03.632156 2015] [:error] [pid 15286] [client 172.27.xxx.xxx:56198] PHP Warning: mkdir(): Permission denied in /var/www/website/modules/users/view/admin/test.php on line 6
[Thu Sep 24 10:21:03.645438 2015] [:error] [pid 15286] [client 172.27.xxx.xxx:56198] PHP Warning: file_get_contents(/var/www/external/NFSShare/test2.txt): failed to open stream: Permission denied in /var/www/website/modules/users/view/admin/test.php on line 15
El mismo problema si intento ejecutar como usuario de Apache desde ssh:
[root@centos NFSShare]# su -s /bin/sh apache -c "touch /var/www/external/NFSShare/test.txt"
touch: cannot touch ‘/var/www/external/NFSShare/test.txt’: Permission denied
Por el momento, he intentado otorgar permisos NTFS a "Todos" en el lado de Windows, CHMOD 0777 tanto como sea posible en el servidor Centos y desactivé SELinux, solo para excluir cualquier problema con esto.
¿Alguien tiene una idea de por qué el usuario de Apache no puede leer ni escribir en NFS Share?
Actualización n.º 1:
Se marcó "tail -f /var/log/audit/audit.log" al crear archivos con el usuario de Apache. No veo ninguna diferencia en el registro cuando creo un archivo en ex. /external o en /external/NFSShare donde me deniegan el permiso en NFSShare.
Marqué "tcpdump -i any dst windowsserver" donde obtengo la solicitud NFS al crear un archivo con el usuario root, pero nada al intentar con el usuario apache. Parece que mi servidor Centos está rechazando la solicitud antes de que se envíe algo al servidor de Windows.