Настройка umask для sftp сессии
Столкнулся с тем, что при работе по sftp не действует параметр umask, прописанный в профиле пользователя ~/.bash_profile. Файлы создаются с umask установленным в системе по умолчанию.
Связано это с тем, что для сессии sftp создается non-login non-interactive shells. Для такой оболочки настройки берутся из файла ~/.bashrc. Чтобы изменить umask для sftp сессии редактируем файл ~/.bashrc следующим образом - находим и комментируем следующую строку (строка находится в начале файла):
#[ -z "$PS1" ] && returnВместо неё пишем следующий код (значение umask ставите которое вам нужно):
if [ -z "$PS1" ]; thenПосле этого соединяемся по sftp, создаем директорию и смотрим с какими правами она создана:
umask 0007
return
fi
sftp> mkdir testВидим, что права соотвествуют установленному параметру umask 0007.
sftp> ls -l
...
drwxrwx--- 2 user user 4096 Feb 22 16:57 test
...
2 коммент.:
Сделал как вы написали. Подключился через sshfs. Делаю touch random.txt. Права 0711, а должны были бы быть 0770 раз umask 0007. Написал umask вообще в начале .bashrc - все та же картина. Добавил umask в fuse-опцию sshfs - на клиенте сразу везде 0770, на сервере как продолжали создаваться 0711, так и продолжают создаваться. Что-нибудь еще можно попробовать?
Drkwv, какой шел у пользователя на сервере? Может не bash, а какой-то другой? В моем примере подключение через sftp, а не через sshfs. При umask 0007 файлы создаются с правами 0660, а директории с правами 0770.
Отправить комментарий