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

Все мои загруженные файлы имеют непригодные для использования разрешения

Я только что переехал на новый сервер и столкнулся с некоторыми странными проблемами с разрешениями.

Каждый загружаемый файл имеет разрешение 600, принадлежит учетной записи пользователя и также находится в той же группе. С этим разрешением сервер не может вносить изменения в эти файлы.

Папка, в которую я загружаю (через обычный sftp), имеет разрешения 755.

Почему все новые файлы, которые я загружаю сюда, имеют разрешение 600? И как мне изменить его, чтобы добавленным файлам были предоставлены разрешения, чтобы они могли быть изменены веб-сервером?

Примечание: Я установил vsftpd, в котором есть настройка для определения umask по умолчанию. Вход через это ftp он работает как положено. Однако это не решает проблему при входе в систему через sftp.

Sftp-server - это подсистема sftp, обычно используемая с openssh.

При ближайшем рассмотрении команды:

$ /usr/lib/openssh/sftp-server -h
usage: sftp-server [-ehR] [-f log_facility] [-l log_level] [-u umask]

Поэтому мы можем установить umask по умолчанию для соединений, передав ключ -u при инициализации. В /etc/ssh/sshd_config где определена подсистема sftp найдите строку.

Subsystem sftp /usr/lib/openssh/sftp-server

и измените его так:

Subsystem sftp /usr/lib/openssh/sftp-server -u 0022

Чтобы разрешить созданным файлам иметь umask по умолчанию 644 и файлы 755

Помните, что этот параметр является глобальным и повлияет на все файлы, передаваемые через sftp, поэтому перед внедрением необходимо принять во внимание безопасность.

Мое основное решение - создать сценарий, который находится между SSH и SFTP и меняет маску при входе пользователя в систему:

> vim /opt/sftp-server.sh

#!/bin/bash
umask 022
/usr/libexec/openssh/sftp-server

Затем отредактируйте файл конфигурации ssh_d (/ etc / ssh / sshd_config) и отредактируйте строку sftp SubSystem, чтобы она указывала на ваш скрипт:

Subsystem       sftp    /opt/sftp-server.sh

Убедитесь, что вы правильно установили разрешения для нового скрипта:

> chmod 755 /opt/sftp-server.sh

Теперь файлы, загруженные через SFTP, должны иметь права 755!

http://blog.mrmason.net/2009/05/27/changing-default-file-permissions-for-sftp/