На sftp linux сервере файлы создаются с правами -------. В чем может быть недонастройка?

SFTP сервер на SUSE Linux Enterprise Server 11 (x86_64) PATCHLEVEL = 1.
Настройки SFTP /etc/ssh/sshd_config

Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6

Match Group sftponly
ChrootDirectory %h
AllowTcpForwarding no
X11Forwarding no


Настройки в /etc/syslog-ng/syslog-ng.conf

unix-dgram("/home/user/dev/log");

host1:/home # ll
drwxr-xr-x 4 root root 4096 Sep 30 17:05 user

host:/home/user # ll -ls
4 drwxr-xr-x 2 root root 4096 Sep 30 17:05 dev
4 drwx------ 2 user users 4096 Oct 12 11:08 upload

Пользователь ходит по ключу. Выкладывает файлы в папку upload по sftp с помощью клиента WinSCP.

Получется следующее.

— 1 user users 5779 Sep 20 15:18 small-bankovskoe-delo.jpg
— 1 user users 6584 Sep 20 15:18 small-bek-ofis.jpg
— 1 user users 15405 Sep 20 15:18 small_aktivn_stoim_invest.jpg

cat /etc/profile

umask 077

В чем может быть проблема создания файлов БЕЗ ПРАВ ДОСТУПА?
  • Вопрос задан
  • 3673 просмотра
Пригласить эксперта
Ответы на вопрос 1
shadowalone
@shadowalone
Связано это с тем, что для сессии sftp создается non-login non-interactive shells. Для такой оболочки настройки берутся из файла ~/.bashrc. Чтобы изменить umask для sftp сессии редактируем файл ~/.bashrc следующим образом — находим и комментируем следующую строку (строка находится в начале файла):
#[ -z "$PS1" ] && return
Вместо неё пишем следующий код (значение umask ставите которое вам нужно):
if [ -z "$PS1" ]; then
umask 0007
return
fi

После этого соединяемся по sftp, создаем директорию и смотрим с какими правами она создана:
sftp> mkdir test
sftp> ls -l
...
drwxrwx--- 2 user user 4096 Feb 22 16:57 test
...

Видим, что права соотвествуют установленному параметру umask 0007.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы