Я бегу vsftpd
и у меня есть конкретный вопрос:
Параметры file_open_mode
и local_umask
позволяют мне настроить, какие разрешения должны быть у вновь созданного файла/папки.
Проблема:
Мне нужен бит 0660 для новых файлов, но 0770 для новых папок (все файлы и папки должны быть доступны для чтения и записи владельцу и группе — папкам нужен бит, executable
чтобы их можно было открыть)
Как это настроить?
(Я искал на этом форуме, в Google, на странице vsftpd.man, в учебных пособиях, руководствах...)
решение1
TL;DR:
Значения file_open_mode
по умолчанию 0666
и дадут вам права доступа к файлам и права доступа к каталогам .local_umask
0007
0660
0770
Разрешения для файлов
Как вы уже отметили, файлы создаются с разрешениями, установленными в file_open_mode
(измененными с помощью local_umask
). Поэтому, чтобы получить файлы, созданные с помощью , 0660
вы можете сохранить значение по умолчанию file_open_mode
и изменить его с помощью , local_umask
чтобы 0007
получить 0660
в качестве результата.
Разрешения для каталога
Каталоги создаются с 0777
измененным режимом local_umask
. Единственная подтверждающая документация, которую я нашел по этому поводу, находится в самом исходном коде. Поскольку официального исходного кода, читаемого браузером, нет, я могу только сослаться на неофициальное зеркало исходного кода наhttps://github.com/dagwieers/vsftpd/blob/3.0.2/postlogin.c#L1179где «настраиваемая umask» в комментарии относится к local_umask
конфигурации.
/* NOTE! Actual permissions will be governed by the tunable umask */
retval = str_mkdir(&p_sess->ftp_arg_str, 0777);