Назад | Перейти на главную страницу

Вторичная группа Freebsd не разрешает удаление папки

TL; DR: у меня есть пользователь, который является участником группы в качестве дополнительной группы. Этот пользователь может удалять файлы с разрешениями 664 как вторичный пользователь, но не каталоги с разрешениями 775.

Подробности: у меня есть пользователь. Назовем его ftpuser. Я использую его для загрузки и скачивания файлов в свой devbox. Первичной группой пользователя является «ftp», которая также входит в группу «www» в качестве дополнительной группы. Мой веб-сервер работает как пользователь www и группа www, и у меня есть proftpd (работающий как www и www), настроенный на размещение всех файлов в необходимых каталогах как www и www (для владения файлами) и perms 664 для файлов и 775 для каталогов.

Моя проблема в том, что (пробовал с двумя ftp-клиентами) ftp-клиент может удалять файлы, но не папки. Filezilla возвращает 550 отказано в разрешении. Только владелец может удалить флаг, не установлен, и я трижды проверил разрешения, и они действительно 775.

Меня сводит с ума, что мне приходится каждый раз заходить на мой сервер, чтобы вручную удалять папки. Некоторые папки и файлы создаются одним из моих сценариев php, но разрешения устанавливаются правильно, когда я проверяю свойства файлов.

Создание каталогов и файлов работает феноменально. Можно удалять файлы, но не каталоги.

Freebsd 9.0 работает в VirtualBox (32-разрядная версия) Proftpd (работает как www и www) в качестве ftp-сервера (пробовал использовать как Dreamweaver, так и filezilla в качестве клиентов) Базовая настройка усилителя (apache, mysql и php).

Редактировать:

Родительская папка была 755. Я знал, что это будет что-то дурацкое, простое и легко не заметить. Я думал, что установил массовую завивку на 775 на два каталога (apache22 / data), но я должен был создать этот каталог после того, как установил завивки. Ты узнаешь что-то новое каждый день. Спасибо!

Разрешение на удаление папки - это разрешение на «запись» в родительскую папку. На самом деле вы удаляете запись «подпапка» в родительской папке. Я предполагаю, что родительская папка не имеет прав на запись для группы «www».

Чтобы удалить каталог, у вас должны быть права на запись в его родительский каталог. Например, учитывая этот каталог:

drwxr-xr-x    3 owner  staff   102 Nov  5 22:00 .
drwxr-xr-x  160 owner  admin  5440 Nov  5 22:00 ..
drwxr-xr-x    2 owner  staff    68 Nov  5 22:00 foo

только owner можно удалить каталог foo (потому что только owner имеет разрешение на запись в родительский каталог).

Если вы предоставите staff права записи группы в родительский каталог:

drwxrwxr-x    3 owner  staff   102 Nov  5 22:00 .
drwxr-xr-x  160 owner  admin  5440 Nov  5 22:00 ..
drwxr-xr-x    2 owner  staff    68 Nov  5 22:00 foo

тогда любой член staff группа может удалить каталог foo.
Однако обратите внимание, что для удаления каталога им потребуется также удалить все его содержимое, поскольку вы не можете удалить непустой каталог.