LINUX.ORG.RU
ФорумAdmin

Присвоение прав на файлы. Vsftpd.

 , ,


0

1

Поднят FTP на vsftpd. Немного запутался.

# 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.

можно группу наследовать. И нужно. Тогда сможешь открывать/удалять.

drBatty ★★
()
Ответ на: комментарий от meklon

man chmod

тебе setgid на каталоге нужен. Ну и надо всех юзеров, которые имеют право, в группу group1 занести. И каталог тоже. И umask поставить 0002. (Если нужна запись/удаление. Иначе 0022.)

drBatty ★★
()
Ответ на: комментарий от drBatty

Кстати, еще проблема. Придется права на исполнение при наследовании давать, так как иначе каталоги работать не будут. Впрочем анонимусы все равно права теряют при заливке сразу. Хотя проблемы будут с каталогами. Он создает каталог, теряет на него права и уже не может положить внутрь файлы. Проблемы, короче)

meklon
() автор топика
Ответ на: комментарий от meklon

Вообще юзеры заливающие - анонмны.

а это к FTP никак не относится. Это относится к самой системе. Из консоли и проводника тоже будет наследоваться GID. Т.е. все новые фалы будут группы ftp (старые ручками надо поправить man chgrp).

drBatty ★★
()
Ответ на: комментарий от meklon

Придется права на исполнение при наследовании давать, так как иначе каталоги работать не будут.

будут. Они и так сами даются для каталогов.

Впрочем анонимусы все равно права теряют при заливке сразу.

для системы они не анонимы, а ftp:ftp.

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

с umask 0022 или 0002 права будут 0755 или 0775, и хозяин ftp поимеет полный доступ к ним.

Проблемы будут у других, если они не в группе ftp и если umask=0002,

Или если umask=0022

И если они хотят редактировать/создавать/удалять.

drBatty ★★
()
Ответ на: комментарий от meklon

Тогда подумаю, как правильнее права расставить.

кроме прав не забудь umask везде поставить (для иксов и консоли в их автозапусках, для демонов в конфигах)

А то если ты создашь папку в иксах, то по дефолту будет 0755, и хоть группа ftp, но этот ftp не сможет писать в такую папку. Надо что-бы в иксах было umask 0002, тогда права новых папок будет 0775, и группа сможет писать туда.

drBatty ★★
()
Ответ на: комментарий от drBatty

Вот я тормоз) umask вычитается из 8-битного значения прав)) я почему-то думал, что это типа default settings overrun)

meklon
() автор топика
Ответ на: комментарий от drBatty

Совершенно запутался((( Можно для тупых какие права и маски должны стоять на директориях?

Маска для анонимов при создании файлов 770. По идее umask не нужен, так как он вычитает права. Далее, анонимы теряют права на свои файлы и меняется их владелец.

chown_uploads=YES
chown_username=meklon
chown_upload_mode=770
Копируем каталог и файл.
meklon@DebianSRV:/mnt/Storage/ftp/exchange/upload$ ls -lh
итого 244K
drwx------ 2 ftp    ftp 4,0K Июн 17 19:42 Рассказы и повести
-r------w- 1 meklon ftp 239K Июн 17 19:42 Сборник 1.tcr
chown_upload_mode=770 не работает (-r------w- 1 meklon ftp 239K Июн 17 19:42 Сборник 1.tcr)

Каталоги не меняют своего владельца.

Теперь загрузка. сделал на каталоге share sudo chmod -R 2755 share/

Файлы приобретают группу и права наследуют как положено, а каталоги нет.

ls -lh
итого 396K
-rwxrwxrwx 1 meklon ftp 391K Июл  5  2007 2 На пути.tcr
drwxrws--- 4 meklon ftp 4,0K Июн 17 19:50 Айзек Азимов

При этом группа ftp общая и для анонимных и для моего пользователя. По идее должен быть полный доступ. Короче беда(((

meklon
() автор топика
Ответ на: комментарий от meklon

ты точно запутался:

1. права(mode) на файлах(НЕ каталогах) по умолчанию 0666.

2. права на каталогах 0777.

3. umask по умолчанию 0022

4. права файла получаются по формуле mode & ( ~umask )

Потому обычно файлы получаются 0644, а вот каталоги 0755.

5. владелец ВСЕГДА тот, кто создал файл. За исключением суперюзера(рут может менять владельца).

6. группа НОВОГО файла/каталога как у создателя, кроме случая, если у каталога, в котором создаётся, есть SGID. Если SGID, то группа как у каталога.

chown_uploads=YES

а вот это уже свои костыли твоего ftp-сервера.

Каталоги не меняют своего владельца.

и не должны. Владелец должен быть тот, кто файл делал. А вот группа наследуется. И для файлов, и для каталогов. Причём SGID тоже наследуется для каталогов, потому подкаталог тоже наследует группу.

drBatty ★★
()
Ответ на: комментарий от meklon

Очень не хочется по cron делать

права по крону == РЕШЕТО.

ЗЫЖ забыл добавить: юзер может сменить группу любого своего файла на любую свою группу (man chgrp). Т.е. руту надо только включить юзера в группу, а права юзер сам может ставить как хочет (на свои файлы конечно).

drBatty ★★
()
Ответ на: комментарий от drBatty

У меня вообще странно группы работают. Посуди сам.

meklon@DebianSRV:/mnt/Storage/ftp/exchange/share$ ls -lh
итого 24K
drwxrwxrwx 2 meklon ftp 4,0K Июн 16 19:24 2013-06-03 Потрошим стиральную машину
drwxrwxrwx 2 meklon ftp 4,0K Июн 16 21:08 2013-06-08 Едим крышку от объектива
drwxrwxrwx 2 meklon ftp  12K Июн 16 19:33 2013-06-16 Венчание Похотько
drwxrws--- 5 meklon ftp 4,0K Июн 17 19:29 Айзек Азимов
meklon@DebianSRV:/mnt/Storage/ftp/exchange/share$ sudo -u ftp rm -Rf Айзек\ Азимов/
rm: невозможно удалить «Айзек Азимов»: Отказано в доступе
Почему от имени ftp нельзя ничего делать, хотя каталоги этой группе принадлежат?

meklon
() автор топика
Ответ на: комментарий от meklon

Почему от имени ftp нельзя ничего делать, хотя каталоги этой группе принадлежат?

потому-что права удаления/создания определяются каталогом. А именно у тебя /mnt/Storage/ftp/exchange/share

Если у тебя там -w, то создавать/удалять нельзя.

И да, удалять можно только пустые каталоги. Непустой каталог невозможно удалить (но там другое сообщение будет).

drBatty ★★
()
Ответ на: комментарий от drBatty

Я с анонима в каталог даже зайти не могу. Хотя явно прописаны rwx права для группы. Вот это я и не понимаю. У меня анонимные идут как «все прочие». А группа не работает.

meklon
() автор топика
Ответ на: комментарий от meklon
meklon@DebianSRV:/mnt/Storage/ftp/exchange$ ls -lh
итого 8,0K
drwxr-sr-x 6 meklon ftp    4,0K Июн 17 21:08 share
drwxrwxrwx 3 meklon meklon 4,0K Июн 17 19:42 upload
meklon
() автор топика
Ответ на: комментарий от meklon

Я с анонима в каталог даже зайти не могу.

там на всех каталогах по пути должно быть право входа +x. А в последнем каталоге(куда заходишь) ещё и право +r.

Хотя явно прописаны rwx права для группы. Вот это я и не понимаю. У меня анонимные идут как «все прочие». А группа не работает.

должна работать. Пробуй через su -c 'команда' username. Или через sudo -u username bash

drBatty ★★
()
Ответ на: комментарий от drBatty

drwxrws--- 2 meklon ftp 4,0K Июн 16 19:24 2013-05-25 Внутрь заходит, но видит пустоту. Обычно когда ему x права не хватает, вываливает в доступе отказано. А тут заходит, но не видит. Блин, мне кажется, тут какой-то изврат с самим vsftpd.

meklon
() автор топика
Ответ на: комментарий от drBatty

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

meklon
() автор топика
Ответ на: комментарий от meklon

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

ох... Для системы это НЕ ограниченный, для системы это ftp:ftp. Ограниченный для системы обычно юзер nobody, он да, бесправный.

А права в линуксе определяются файлом /etc/group, чем в большем числе групп юзер X состоит, тем его права круче. Скажем, если юзер состоит в группе plugdev, то у него есть право подключать внешние девайсы, вроде флешек. Ну и т.д.

Вообще конкретные ограничения для всех систем разные.

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.