Я знаю, що це питання вже обговорювалося, але, читаючи дописи, я не міг зрозуміти відповіді, тому що одні сказали "так, umask може працювати", а інші кажуть "OpenSSH put команда завжди зберігає дозволи"
Перед усім лише для точного:
- Я використовую OpenSSH 5.9 на RHEL 6.2
- Я налаштував хроноване SFTP-сервер, використовуючи
internal-sftp
підсистему,-u 0002
для umask - Я точно вказую, що не використовую
-p
або-P
варіант
З того, що я прочитав з одного боку: існує багато способів визначення umask для передачі SFTP:
- варіант
-u
зinternal-sftp
(абоsftp-server
), так як OpenSSH 5.4 - створити обгортку для
sftp-server
(у якій явно встановлюємо umask - це не підходить для chrooted середовища btw) - додати конкретну конфігурацію у
pam.d/sshd
файл
З іншого боку, я прочитав:
Клієнт і сервер OpenSSH SFTP передають дозволи (як розширення) та створюють віддалений файл з дозволами на локальній стороні. AFAICT, немає можливості відключити цю поведінку.
Тому я зробив наступний тест:
На своєму клієнті я створив файл MYFILE
і каталог MYDIR
з дозволами 600 і 700.
Потім з sftp
командами:
mkdir => the new directory has permissions following the umask (OK)
put MYFILE => MYFILE has same permissions as on client (KO)
put -r MYDIR => MYDIR has same permissions as on client (KO)
Якщо я зміню дозволи MYFILE
та MYDIR
на клієнтській стороні та знову завантажую, я отримую нові дозволи на стороні сервера.
Я також спробував pam.d
рішення, але воно нічого не змінило.
Тож тепер я плутаюся:
Коли я тестував і частину прочитаного, я б сказав, що OpenSSH завжди зберігає дозволи. Але так як є багато постів, які говорять про те, що umask можна визначити, я можу уявити, що я роблю неправильно в своїх тестових конфігураціях.
Буду вдячний за досвідчені відгуки.
Дякую.