Разрешения файлов Ubuntu Xampp PHP с NTFS Hdd в качестве дополнительного хранилища мультимедиа - PullRequest
1 голос
/ 09 декабря 2011

У меня есть 4 диска (да, физически в коробке, sata подключен) система Ubuntu 10.10 с xampp, установленным в / opt / lampp / dir на диске ОС.Диск ОС (ssd, давайте назовем его drive1 для здравого смысла) имеет правильные права доступа к файлам, чтобы PHP (пользовательские www-данные) мог выполнять чтение / запись в любую из моих папок htdocs и vhosts.

Моя проблема связана с тем, что я пытаюсь переместить файл, который существует на одном из трех других дисков.Каждый из моих других дисков имеет формат NTFS (1 ТБ, 1,5 ТБ и 2,0 ТБ) и смонтирован с помощью fstab.Когда я просматриваю права доступа к файлу с графическим интерфейсом (nautilus), он говорит, что все root.Поэтому я попробовал chown, chmod и т. Д. Я обнаружил, что вы не можете изменить разрешения ntfs с помощью этих команд.Поэтому я перешел к своей конфигурации fstab, однако я не могу установить те разрешения, которые позволят PHP копировать / переименовывать / перемещать файл даже на одном из дисков.

Я обновил до использования UUID сегодня,диски также доступны в моей локальной сети, и это все еще прекрасно работает.

Я перешел на драйвер ntfs-3g после установки, перезапустил машину, но я все еще не могу заставить php переместить файл.

Вот мой файл fstab: UUID = 552A7C6B05CEAAD2 / media / v1tb ntfs-3g по умолчанию, uid = 1000 0 0 UUID = DE58539158536775 /media/v1.5tb ntfs-3g по умолчанию, uid = 1000 0 0 UU3D80C54D5D100280 /media/v2.0tb ntfs-3g по умолчанию, uid = 1000 0 0

Кроме того, я попытался использовать следующее, и он прекрасно работает:

sudo -u www-data cp '/media/v2.0tb/path/to/file' '/media/v2.0tb/path/to/newfile'

Как имитироватьпользователь работает, но функции переименования / копирования php не будут работать?

Как настроить пользователя php (www-data) на возможность копирования / переименования / удаления файлов и каталогов на этих дисках ntfs?Нужно ли их переформатировать?

Ответы [ 2 ]

0 голосов
/ 08 февраля 2013

Если у кого-то возникает такая проблема, иногда может случиться так, что права доступа к предыдущим каталогам могут повлиять на доступ к каталогу.

Например, в Ubuntu 12.10 у вас есть разделы на / media, как и во многих других версиях Ubuntu. Но в этой версии у вас может быть другой каталог, в котором будут находиться ваши разделы, особенно NTFS и внешние диски, - / media / YOUR_USER_NAME. Чтобы разрешить доступ к моему внешнему жесткому диску, конкретно используя PHP, мне пришлось сначала изменить разрешения в / media / MY_USER_NAME, а затем в /media/MY_USER_NAME/MY_EXTERNAL_DRIVE.

.

Используются следующие команды: sudo chown MY_USER_NAME MY_USER_NAME / sudo chown MY_USER_NAME MY_USER_NAME / MY_EXTERNAL_DRIVE /

и

sudo mount -t ntfs -o rw, uid = 1000, gid = 1000, fmask = 000, dmask = 000 / dev / sdb1 / media / MY_USER_NAME / MY_EXTERNAL_DRIVE

Первый и второй - изменить владельца каталога, а третий - смонтировать диск NTFS с правильными разрешениями.

Я подумал, что это может быть кому-то полезно, потому что я провел несколько часов после того, как понял, что, возможно, у меня нет доступа к предыдущим каталогам.

0 голосов
/ 09 декабря 2011

Зависит от используемого драйвера ntfs .Для ntfs-3g вы можете использовать параметры uid= и gid= в fstab.Существует также функция usermapping=, которая может представлять интерес.Смотрите также manpage

...