Хорошо, вот в чем дело .. У меня проблемы с доступом к определенной папке, несмотря на правильные настройки безопасности (по крайней мере, я так думаю). Что мне не хватает?

Некоторые детали:

Используя Raspbian, это будет Debian Linux v8

Безопасность папки: drwxrwx--- 3 www-data www-data 4096 Feb 13 00:34 owncloud

(Я использовал sudo chown -R www-data:www-data /media/pi/_ext.vol/owncloud и sudo chmod -R 770 /media/pi/_ext.vol/owncloud чтобы установить владельца и разрешения для этой папки owncloud ( файловая система ext4 используется))

Я проверяю доступ с помощью этой строки: sudo -u www-data ls -lisa /media/pi/_ext.vol/owncloud НО .. нет доступа. Зачем ??? Я просто не могу понять это :(

Любая помощь будет очень высоко ценится !!

2 ответа2

1

Проверьте разрешения родительского каталога. Чтобы получить доступ к каталогу более низкого уровня, www-data должен иметь как минимум +x для каждого родителя.

В качестве демонстрации:

alex@al-core:/tmp$ sudo mkdir -p testdir/foo
alex@al-core:/tmp$ sudo chown -R www-data:www-data ./testdir
alex@al-core:/tmp$ sudo ls -lah ./testdir
total 48K
drwxrwx---  3 www-data www-data 4.0K Feb 13 13:53 .
drwxrwxrwt 17 root     root      36K Feb 13 13:56 ..
drwxrwx---  2 www-data www-data 4.0K Feb 13 13:53 foo
alex@al-core:/tmp$ sudo ls -lah ./testdir/foo
total 8.0K
drwxrwx--- 2 www-data www-data 4.0K Feb 13 13:53 .
drwxrwx--- 3 www-data www-data 4.0K Feb 13 13:53 ..
alex@al-core:/tmp$ sudo chown root:root ./testdir
alex@al-core:/tmp$ sudo ls -lah testdir/foo
total 8.0K
drwxrwx--- 2 www-data www-data 4.0K Feb 13 13:53 .
drwxrwx--- 3 root     root     4.0K Feb 13 13:53 ..
alex@al-core:/tmp$ sudo -u www-data ls -lah testdir/foo
ls: cannot access testdir/foo: Permission denied

Изменить, чтобы добавить демонстрацию исправления:

alex@al-core:/tmp$ sudo -u www-data ls -lah testdir/foo
ls: cannot access testdir/foo: Permission denied
alex@al-core:/tmp$ sudo chmod a+x ./testdir/
alex@al-core:/tmp$ sudo -u www-data ls -lah testdir/foo
total 8.0K
drwxrwx--- 2 www-data www-data 4.0K Feb 13 13:53 .
drwxrwx--x 3 root     root     4.0K Feb 13 13:53 ..
alex@al-core:/tmp$ 

Однако поскольку каталоги, о которых мы здесь говорим, являются системными каталогами, установленными операционной системой, вам, вероятно, не следует их менять.

Рассмотрите возможность монтирования каталога owncloud по другому пути в /usr /local /, /var /local или /opt, который предназначен для пользовательского программного обеспечения.

Изменить 2:

Поскольку здесь мы имеем дело с USB-накопителем, сохранение автоматической установки является полезным. Должно быть безопасно заменить родительские каталоги на новую группу (например, "usbstick").

Так что я бы сделал:

chmod a+x /media /media/pi  # may already be like this
groupadd usbstick
chown root:usbstick  /media/pi/_ext.vol
usermod -a -G usbstick www-data

Это может не сохраниться, если вы отключите USB-накопитель, хотя я не уверен, как настроен Raspbian. Вообще говоря, я бы рекомендовал не хранить программное обеспечение для запуска веб-пользователем на USB-флешке, если вы можете избежать этого!

0

О да ! Теперь это работает. Я подведу итоги, чтобы другие пользователи могли извлечь выгоду:

Даже при символической ссылке фактический путь, который необходимо пройти, чтобы попасть туда, все равно должен учитываться, поэтому при попытке достичь (как «пользовательские» www-данные) ..

/media/pi/_ext.vol/owncloud со своим: drwxrwx--- www-data www-data

/media имеет drwxr-xr-x root root
/media/pi имеет drwxr-x---+ root root
/media/pi/_ext.vol имеет drwxrwxrwx root root

Чтобы получить доступ, я позволил «миру» (который в данном случае относится к www-данным «пользователь») иметь также и r-x в папке «pi»: chmod a+rx /media/pi

С помощью /media/pi , drwxr-xr-x+ root root теперь я могу пройти по всему пути, являющемуся www-данными (проверил каждую часть пути с помощью sudo -u www-data ls -lisa /media/pi/_ext.vol/owncloud команда).

(обратите внимание, что владелец другой / изменился, перейдя из '_ext.vol' в папку 'owncloud', просто чтобы прояснить это)

Большое спасибо Alex и techraf за понимание!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .