Назад | Перейти на главную страницу

internal-sftp -u 002 игнорируется для скопированных файлов

Я настроил OpenSSH вот так

Subsystem sftp internal-sftp

Match Group sftp
    ForceCommand internal-sftp -u 002
    AuthorizedKeysFile    /home/sftp/ssh/%u
    ChrootDirectory %h
    X11Forwarding no
    AllowTcpForwarding no

Эта конфигурация работает, но есть одна проблема: файлы или папки, которые копируются с локального диска в sftp, сохраняют свои разрешения (обычно 755) и никаких других sftp-user имеет к ним доступ.

Другой sftp-users иметь полные разрешения только в том случае, если кто-то создает папку или файл или копирует файл с разрешениями 775.

Есть ли способ, чтобы все файлы в sftp-directory иметь 775 разрешения? На данный момент я использую chmod -R 775 /home/sftp/files/ установить его вручную, но это не то решение, которое я хотел бы иметь ...

Спасибо

При такой настройке это невозможно, потому что umask недостаточно сильный инструмент для принудительного получения разрешений, если исходное разрешение ниже. Есть несколько решений, как с этим справиться:

  • Первый из них - ваш упомянутый chmod, который вам нужно будет запускать периодически, чтобы все пользователи имели доступ ко всем файлам.

  • Другое решение -m переключиться на sftp-server, который решает эту проблему, устанавливая точные разрешения для вновь загруженных файлов. Но эта функция не является апстримом, но она доступна по крайней мере в RHEL / Fedora, особенно для этого варианта использования.