Я искал здесь, но не нашел похожего вопроса.
Я установил SSH
и sftp
сервер на debian 7
, проблема в том, что umask
применяется без разрешений на выполнение. Даже если я изменю другое значение, разрешения на выполнение никогда не применяются.
Вот моя конфигурация:
Match Group sftp-users
ChrootDirectory /sftp/%u
AuthorizedKeysFile /sftp/%u/.ssh/authorized_keys
X11Forwarding no
AllowTcpForwarding no
# AuthenticationMethods publickey
ForceCommand internal-sftp -u 0002
Пример:
-u 0002
загруженный файл .txt должен получить 775 разрешений, но вместо этого получит 664 -u 0222
загруженный файл .txt должен получить 555, но получил 444 -u 0666
загруженный файл .txt должен получить 111, но получил 000 Не могли бы вы сообщить мне, какие файлы следует проверить или какую другую конфигурацию вам нужно увидеть? Спасибо!
Сначала вы должны понять, что такое umask
(страница руководства объясняет это довольно хорошо). Это не полное отрицание разрешений, которые вы получите, а маска разрешений, которая должна быть удалена из исходных разрешений загруженного файла. Это означает, что вам необходимо принять во внимание исходное разрешение файла, который вы пытаетесь загрузить, что обычно 0666
, если это не исполняемый файл (но вы никогда не узнаете, какие разрешения будут у файлов, которые пользователи собираются загружать).
Вот почему существует ошибка в исходном OpenSSH чтобы запросить функциональность, как вы описываете, но это, конечно, не называется umask
больше. Если вы хотите использовать эту функциональность, она уже есть в Fedora / RHEL.