is_writable возвращает false для NFS-ресурса, даже если он доступен для записи для пользователя www-data - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть относительная папка files / crm-upload, куда я хочу загружать файлы.Мой код проверяет, является ли is_writable () истинным и продолжается только в этом случае.

Папка монтируется как общий ресурс NFS с rw и sec = sys.

Я написалТестовый скрипт, который я также выполняю на apache для просмотра прав доступа, имеет следующий результат:

files/crm-upload/php_touch modification time has been changed to present time 
My effective UID is 33 but my UID is really 33
files/crm-upload/ is owned by 33 and has permissions 40777
is_readable('files/crm-upload/') gives true
is_readable('files/crm-upload/php_touch') gives true
is_writable('files/crm-upload/') gives false
is_writable('files/crm-upload/php_touch') gives true
is_writable('files/crm-upload/25/') gives true
is_writable('files/images/') gives true
file_exists('files/crm-upload/') gives true
file_exists('files/crm-upload/php_touch') gives true
Some stat uids: 

files/crm-upload/: 33
files/crm-upload/php_touch: 33
files/images/: 33

Итак:

  • касание файла в общей папке работает
  • правильные идентификаторы
  • dir имеет правильные разрешения
  • is_writable для подпапок и файлов на общем ресурсе возвращает true

Как это может быть, что только корневая папкасмонтированный общий ресурс не доступен для записи, а все остальное есть?

Это Ubuntu 18.04.клиент, SELinux не работает ...

1 Ответ

0 голосов
/ 05 марта 2019

Я не думаю, что у вас есть 40777.Я думаю, что у вас есть 4777 или 0777

Использование 2777 или 7777

Подробнее о https://linuxconfig.org/how-to-use-special-permissions-the-setuid-setgid-and-sticky-bits

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...