Доброе время, коллеги.
Вопрос позорно ламерский, но сам ответа не нашел.
Приходится администрить некий сайт живущий под Дебианом, как там все внутри работает никто толком не знает, черный ящик. Но есть следующая проблема. Данные на сайт заливаются по фтп, далее некий софт их каким то образом обрабатывает и вот этому софту нужно чтобы права на эти файлы были 777 а при закачке по фтп они получаются 600 Менять каждый раз права руками не красиво, менять скриптом тоже не совсем верно, подозреваю что существует некий механизм, по аналогии с create mask = 0777 в Самбе например, позволяющий задать права на заливаемые файлы. Права на директории куда все льется стоят 0777. Подскажите как лучше порешать проблему. Спасибо
Для начала выяснить что за ftp сервер используется. Потом сделать поиск по доке этого сервера.
Чисто любопытно, зачем софту именно 777?
>Для начала выяснить что за ftp сервер используется. Потом сделать поиск по
>доке этого сервера.родной линуксовый фтп, по доке естественно искал и не нашел.
>Чисто любопытно, зачем софту именно 777?ну может, даже наверняка, достаточно и меньших прав, просто ставлю руками 777 и все работает, но это уже детали
>родной линуксовый фтп, по доке естественно искал и не нашел.Гениально, прям в ядро встроенный? А из следующих кто по вашему роднее: ftpd, vsftpd, wu-ftpd, proftpd?
Покажите вывод ps ax| grep -i ftp
Или netstat -apn | grep :21
>Или netstat -apn | grep :21vsftpd
>Для начала выяснить что за ftp сервер используется. Потом сделать поиск по
>доке этого сервера.Исходная задача решилась но появился ряд вопросов))
Как я понял из доков, к моей проблеме имеют отношения два параметра в vsftpd.conf: local_umask (на фтп ходят не анонимы) и file_open_mode Не совсем понял в чем между ними разница, но вроде как первый работает при закачке файлов только локальными юзерами а второй работает в любом случае. Так вот, работают они у меня както странно. Изначально оба параметра были закоментарены и находились соответственно в дефолтных значения, тоесть по доке file_open_mode=666 а local_umask=077 ("0" в данном случае вроде как не права овнера а просто приставка) Но создаваемые файлы получались почему то 600 Стал экспериментировать с обеими параметрами и выяснил что на file_open_mode вообще никакой реакции нету, тоесть что туда не ставь - результат не меняется, а на local_umask реакция есть но тоже странная, Если его раскоментировать то получается всегда 644, вне зависимости от того какое значение ему присвоить, если закоментировать то 600. Софту 644 хватило и все работает, но почему так странно и что делать если придется выставлять другие права так и не понял.
umask указывает не какие биты оставить, а какие нужно снять. При umask 077 права для владельца останутся нетронутыми (0), а для группы и остальных снимутся все биты (7 это бинарный 111). Файл создается с правами file_open_mode , после применения umask останется 600.
Итого если хотите получить 777, то ставьте file_open_mode=0777 и local_umask=0
Спасибо, теперь все стало понятно, странно что в мане нету про то что umask это именно снимаемые биты.
Может потому что это не относится к теме man, он ведь про vsftpd, а не про то, что такое права, маски, инвертированные маски(umask), логичекое И, логическое отрицание aka инверсия, двоичная система исчисления итд :)
Можете глянуть man umask