Як поставити потрібний умаск за допомогою SFTP?


23

У мене є SFTP-сервер (openssh / sftp-сервер), і я хотів би встановити umask 002 для користувачів, які використовують цю послугу. Я спробував встановити PAM (pam.d / common-session) та .profile для кожного користувача, але не пощастило.

З входом в SSH все добре, але коли я намагаюся використовувати SFTP (з gFTP), у мене встановлений 022 umask.

Я вже намагався використовувати обгортку для sftp-сервера, який змінює umask перед тим, як викликати sftp-сервер, не пощастило.

Будь-яка допомога? Дуже дякую!

Відповіді:


25

Оскільки OpenSSH 5.4p1, я думаю, ви можете використовувати опцію "-u", наприклад:

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

На чоловіковій сторінці:

 -u umask
         Sets an explicit umask(2) to be applied to newly-created files
         and directories, instead of the user's default mask.

це мило!! Я
погляну

5
Для тих, хто не має можливості -u, це працює:Subsystem sftp /bin/sh -c 'umask 0002; /usr/lib/openssh/sftp-server'
Стів Клей

1
Гарне рішення. Він вирішує проблему з оболонками клієнтів та програмами, такими як CyberDuck, які встановлюють свої дозволи за замовчуванням незалежно від системного umask. Мені було корисно переконатися, що кожен клієнтський додаток встановить правильні дозволи, щоб мої користувачі працювали разом над груповими файлами. Може бути корисним також додати, що це налаштування не заважатиме користувачам налаштовувати дозволи файлів, якщо вони хочуть.
герлос

Останнє, що потрібно додати: якщо вам потрібна лише функція sftp і не потрібно надавати користувачам доступ до оболонки, ви можете також розглянути можливість використання rssh замість bash для своїх оболонок та встановлення для них умовного файлу umask у /etc/rssh.conf . Це може зробити ваш сервер більш захищеним
Герлос

7

Я сподіваюся, що це може врятувати когось іншого години розчарування ...

Якщо ви використовуєте програму GPTP SFTP, перевірте його налаштування щодо налаштування дозволів на завантаження.

Я спробував усі рішення, наведені вище, і, виявляється, програма просто їх перекрила.


^ Так, давно я встановлював umask на sftp-з'єднання, роблячи сценарій, подібний до рішення Weboide. Нещодавно я чухав голову, чому це, здається, не працює так добре, як раніше. Ну, очевидно, в якийсь момент оновлення для мого клієнта SFTP зробило його явним чином встановити umask після з'єднання з ssh, тому перейдіть до фігури.
Джаред Кіпе

Це не лише графічні інтерфейси. Навіть клієнтів. Я зайняв занадто багато часу, щоб зрозуміти, що тестовий файл, який я завантажив, мав 0600, який клієнт (OpenSSH sftp) скопіював у віддалену сторону.
xebeche

Дякую! Провели так довго, граючи з дозволами ні за що.
Таня Расія

2

Після багатьох годин, намагаючись застосувати різні хаки та виправлення, я знайшов правильне рішення!

Існує патч для SSH, який дозволяє вам вибрати umask, який потрібно для SFTP. Завантажити його можна тут: http://sftpfilecontrol.sourceforge.net/

Для мене (OpenSSH_5.2p1 + sftpfilecontrol-v1.3, OpenSSL 0.9.8g 19 жовтня 2007) він працює чудово!


2
Просто зауважте, що опція '-u' для встановлення umask доступна у OpenSSH з 5.4p1, дивіться мою відповідь далі.
Weboide

2

У конфігураційному файлі ssh ви також можете використовувати цей параметр, щоб спеціально встановити режим файлу (переосмисливши будь-який chmod, який може спробувати встановити клієнт). Тут я використовую Internal-sftp, але, мабуть, це було б саме для sftp-сервера:

ForceCommand internal-sftp -u 0022   

0

Щоб цитувати це повідомлення :

Я добре працював, додавши рядок "umask 007" в /etc/init.d/ssh.

Bash використовує .profileдля інтерактивних оболонок для входу. Я не думаю, що sftpвважається одним. Можливо, ви зможете встановити umask /etc/bash.bashrcабо ~/.bashrcякщо підказка вище не працює, або ви хочете більш дрібно контролювати.


2
дякую за відповідь, але я вже мав у ssh umask 002 (я намагався також 0002) і він не працює :( також bashrc не враховується, так як із зовнішнім клієнтом SFTP я не думаю, що bash використовується. Якщо я входжу безпосередньо з ssh, все в порядку. Моя проблема лише з клієнтами SFTP. Дякую!
mat_jack1

На жаль, ви праві. Я не знаю, чому я думав про те, що Баш брав участь.
Призупинено до подальшого повідомлення.

0

Зверніться до цього питання, щоб знайти просте рішення, яке не вимагає конкретних opensh версій і спеціальних патчів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.