Я знаю, что по этому поводу много вопросов, но у меня ничего не помогло. Итак, у меня есть ftp-сервер на Ubuntu 4.8 с включенным sshd. Я хотел бы иметь права на запись для группы владельца для каждого загруженного файла.
Прямо сейчас права доступа к папке: drwxrwxr-x
И у каждого загруженного файла есть разрешения -rw-r--r--
То, что я пробовал, но ничего не меняет (используя FileZilla 3.21.0
или sftpd
команда прямо на Mac):
local_mask=0002
в /etc/vsftpd.conf
Subsystem sftp /usr/lib/openssh/sftp-server -u 002
или Subsystem sftp /usr/lib/openssh/sftp-server -u 0002
в /etc/ssh/sshd_config
Я перезапустил vsftpd
и sshd
, но у группы все еще есть права на чтение. Что является причиной этого?
В Протокол SFTP включает в себя операцию для клиента по установке атрибутов файлов на сервере. Это означает, что клиенты SFTP могут устанавливать разрешения для загружаемых файлов независимо от umask.
Я могу придумать три способа добиться того, чего вы хотите:
Попросите удаленного пользователя настроить своего клиента так, чтобы он отключил установку разрешений на загруженные файлы, если это возможно. Например, вы можете увидеть настройку для этого в этот диалог WinSCP.
Настройте автоматизированный процесс на сервере, чтобы очистить каталог, содержащий эти файлы, и настроить разрешения для любых недавно загруженных файлов.
Отключите операцию SSH_FXP_SETSTAT на сервере SFTP. Для OpenSSH сервер, вам придется изменить исходный код для sftp-сервер программа. На рынке есть коммерческие решения SSH / SFTP, и одно из них может позволить отключить эту функцию.