Как установить разрешения по умолчанию для SFTP для сервера Ubuntu?

16

У нас есть сервер Ubuntu 10.04. Как я могу установить так, чтобы новые файлы, созданные (или скопированные) по SFTP или SSH, имели права g + rw и g + rwx (где это уместно)?

Я также использую setgid (chmod g + s), чтобы они наследовали правильного владельца группы.

wag2639
источник

Ответы:

12

В / etc / ssh / sshd_config вы можете передать флаг и значение в (-u 0002), как показано ниже, чтобы установить значение umask:

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

Добавьте -u 0002 к существующей строке sftp Подсистемы файла конфигурации.

После этого вам нужно будет перезапустить ssh, чтобы изменения вступили в силу:

service ssh restart
Домино
источник
Это относится только к более новым версиям OpenSSH, но должно быть предпочтительным решением, где это возможно.
Андрей B
2
Это работает только в том случае, если вам нужно больше ограничительных разрешений, чем то, что установлено клиентом, а не более свободно.
Joost
Как сказал Джуст, это не помогает навязывать права на групповую запись. Я бы помог запретить групповую запись.
вылет
Согласно недавней документации, те же параметры могут быть использованы с Subsystem sftp internal-sftp.
underscore_d
10

В / etc / ssh / sshd_config измените следующее:

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

чтобы:

Subsystem sftp /bin/sh -c 'umask 0002; exec /usr/libexec/openssh/sftp-server'

Soure: http://jeff.robbins.ws/articles/setting-the-umask-for-sftp-transactions

wag2639
источник
1
Лучше поставить execперед финалом /usr/.../sftp-server, чтобы не было бесполезных shпроцессов.
user1686
Кроме того, umask - это просто число; 0002короче можно написать как 02.
user1686
Я думал, что Umask был восьмеричным, но спасибо за отличную часть.
wag2639
2
Да, umasks являются восьмеричными. Это не значит, что вам нужно три ведущих нуля - достаточно одного. (На самом деле, umaskкоманда не нуждается в каких - либо ведущих нулей, он всегда читает аргумент как восьмеричное число.) ... Но на второй мысли, может быть , 0002яснее понять.
user1686 19.06.10
2
Это не работает для меня. Это не будет обеспечивать разрешение G + W.
вылет