Comment mettre l'umask souhaité avec SFTP?

J'ai un server SFTP (openssh / sftp-server) et je souhaite configurer umask 002 pour les users utilisant ce service. J'ai essayé de définir PAM (pam.d / common-session) et .profile pour chaque user, mais pas de chance.

Avec SSH, tout va bien, mais lorsque j'essaie avec SFTP (avec gFTP), j'ai le jeu 022 umask.

J'ai déjà essayé d'utiliser un wrapper pour sftp-server qui change le umask avant d'appeler le server sftp, pas de chance.

De l'aide? Merci beaucoup!

Puisque OpenSSH 5.4p1, je pense, vous pouvez utiliser l'option "-u", par exemple:

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

De la page man:

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

J'espère que cela peut sauver quelqu'un d'autre de frustration …

Si vous utilisez une application GUI SFTP, vérifiez ses preferences pour définir les permissions lors du téléchargement.

J'avais essayé toutes les solutions ci-dessus, et il s'avère que la request était juste de les surpasser.

Après plusieurs heures, j'ai essayé d'appliquer divers hacks et réparations. J'ai trouvé une solution appropriée!

Il existe un patch pour SSH qui vous permet de choisir l'umask que vous voulez pour SFTP. Vous pouvez le download ici: http://sftpfilecontrol.sourceforge.net/

Pour moi (OpenSSH_5.2p1 + sftpfilecontrol-v1.3, OpenSSL 0.9.8g 19 oct 2007) ça marche parfaitement!

Pour citer ce message :

Je l'ai bien fonctionné en ajoutant une ligne "umask 007" dans /etc/init.d/ssh.

Bash utilise le .profile pour les shells de connection interactifs. Je ne pense pas que sftp count comme un seul. Vous pourriez peut-être configurer l'umask dans /etc/bash.bashrc ou ~/.bashrc si la pointe ci-dessus ne fonctionne pas ou si vous voulez un contrôle plus fin.

Reportez-vous à cette question pour find une solution simple qui ne nécessite pas de versions spécifiques openssh ni des correctifs personnalisés.

Dans le file de configuration ssh, vous pouvez également l'utiliser pour définir spécifiquement le mode du file (en supprimant tout chmod que le client peut essayer de définir). Ici, j'utilise internal-sftp mais je suppose que ce serait la même chose pour sftp-server:

 ForceCommand internal-sftp -u 0022