# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
anon_mkdir_write_enable=YES
#chrooting anons
anon_root=/mnt/Storage/ftp/exchange
anon_umask=770
chown_uploads=YES
chown_username=meklon
chown_upload_mode=770
Вот например. А права на залитое юзерами выглядят совсем иначе.
meklon@meklon-kubuntu:/media/Storage/ftp/exchange/upload$ ls -lh
итого 1,0M
d-wxrwxr-x 2 meklon users 0 июня 15 12:11 Foto
Можно по cron раз в минуту менять, но это костыль. Плюс проблема номер 2. Когда я просто копирую файлы в папку share, откуда могут анонимусы забирать файлы, они падают с маской 770, как и в моей системе. То есть открыть они не смогут, пока права не дам. Можно ли на уровне файловой системы автоматом присваивать права залитым туда файлам и папкам? Типа скопировал файл с правами 770, а он, сохраняя владельца, стал 777. Был бы рад, если бы помогли разобраться. Я в мануалах несколько заблудился))
Когда я просто копирую файлы в папку share, откуда могут анонимусы забирать файлы, они падают с маской 770, как и в моей системе. То есть открыть они не смогут, пока права не дам. Можно ли на уровне файловой системы автоматом присваивать права залитым туда файлам и папкам? Типа скопировал файл с правами 770, а он, сохраняя владельца, стал 777.
можно группу наследовать. И нужно. Тогда сможешь открывать/удалять.
тебе setgid на каталоге нужен. Ну и надо всех юзеров, которые имеют право, в группу group1 занести. И каталог тоже. И umask поставить 0002. (Если нужна запись/удаление. Иначе 0022.)
Кстати, еще проблема. Придется права на исполнение при наследовании давать, так как иначе каталоги работать не будут. Впрочем анонимусы все равно права теряют при заливке сразу. Хотя проблемы будут с каталогами. Он создает каталог, теряет на него права и уже не может положить внутрь файлы. Проблемы, короче)
а это к FTP никак не относится. Это относится к самой системе. Из консоли и проводника тоже будет наследоваться GID. Т.е. все новые фалы будут группы ftp (старые ручками надо поправить man chgrp).
кроме прав не забудь umask везде поставить (для иксов и консоли в их автозапусках, для демонов в конфигах)
А то если ты создашь папку в иксах, то по дефолту будет 0755, и хоть группа ftp, но этот ftp не сможет писать в такую папку. Надо что-бы в иксах было umask 0002, тогда права новых папок будет 0775, и группа сможет писать туда.
Совершенно запутался(((
Можно для тупых какие права и маски должны стоять на директориях?
Маска для анонимов при создании файлов 770. По идее umask не нужен, так как он вычитает права. Далее, анонимы теряют права на свои файлы и меняется их владелец.
1. права(mode) на файлах(НЕ каталогах) по умолчанию 0666.
2. права на каталогах 0777.
3. umask по умолчанию 0022
4. права файла получаются по формуле mode & ( ~umask )
Потому обычно файлы получаются 0644, а вот каталоги 0755.
5. владелец ВСЕГДА тот, кто создал файл. За исключением суперюзера(рут может менять владельца).
6. группа НОВОГО файла/каталога как у создателя, кроме случая, если у каталога, в котором создаётся, есть SGID. Если SGID, то группа как у каталога.
chown_uploads=YES
а вот это уже свои костыли твоего ftp-сервера.
Каталоги не меняют своего владельца.
и не должны. Владелец должен быть тот, кто файл делал. А вот группа наследуется. И для файлов, и для каталогов. Причём SGID тоже наследуется для каталогов, потому подкаталог тоже наследует группу.
ЗЫЖ забыл добавить: юзер может сменить группу любого своего файла на любую свою группу (man chgrp). Т.е. руту надо только включить юзера в группу, а права юзер сам может ставить как хочет (на свои файлы конечно).
Я с анонима в каталог даже зайти не могу. Хотя явно прописаны rwx права для группы. Вот это я и не понимаю. У меня анонимные идут как «все прочие». А группа не работает.
drwxrws--- 2 meklon ftp 4,0K Июн 16 19:24 2013-05-25
Внутрь заходит, но видит пустоту. Обычно когда ему x права не хватает, вываливает в доступе отказано. А тут заходит, но не видит. Блин, мне кажется, тут какой-то изврат с самим vsftpd.
чисто логически - анонимный пользователь выступает с правами не группы ftp, а какими-то совсем ограниченными. поэтому и требует для работы 777.
ох... Для системы это НЕ ограниченный, для системы это ftp:ftp. Ограниченный для системы обычно юзер nobody, он да, бесправный.
А права в линуксе определяются файлом /etc/group, чем в большем числе групп юзер X состоит, тем его права круче. Скажем, если юзер состоит в группе plugdev, то у него есть право подключать внешние девайсы, вроде флешек. Ну и т.д.
Вообще конкретные ограничения для всех систем разные.