8 votes

Comment spécifier la permission du fichier lors de la mise en place d'un fichier en utilisant la commande sftp d'OpenSSH

J'utilise différents clients SFTP pour télécharger des fichiers vers un serveur SFTP et j'ai un problème avec la permission par défaut utilisée lors de la mise en place des fichiers.

Lorsqu'il demande à placer un fichier, un client SFTP comme WinSCP ou Filezilla enverra la commande SSH_OPEN sans demander de permission explicite pour le fichier.

D'autre part, il semble que la commande OpenSSH sftp sous Linux (Red Hat et Ubuntu) attende la commande SSH_OPEN avec le mode '640'.

Comment puis-je configurer la commande OpenSSH pour ne pas définir explicitement le mode du fichier ou comment puis-je la configurer pour envoyer un mode autre que 640 ?

Merci beaucoup !


Mise à jour :

J'ai vérifié le code source du client sftp d'OpenSSH et il semble que sftp d'OpenSSH essaie toujours de préserver le mode fichier même si -P n'est pas défini : http://www.koders.com/c/fidD3B20680F615B33ACCB42398FAAFEE1C007DF942.aspx?s=rsa#L986

Pour résoudre ce problème, j'ai utilisé le client SFTP Putty.

7voto

Martin Prikryl Points 7129

Si un client SFTP ne spécifie pas de permissions pour les fichiers téléchargés, le serveur SFTP OpenSSH attribue des permissions 0664 aux fichiers nouvellement créés. C'est pour l'umask par défaut 0002, que vous pouvez changer en utilisant la commande -u switch comme le montre la réponse de @JimB.


Si un client SFTP spécifie les permissions, le serveur OpenSSH utilise les permissions spécifiées (le umask ne s'applique pas).

Aperçu de quelques clients SFTP populaires :

3voto

EddyR Points 173

Le serveur sftp créera le nouveau fichier avec le umask par défaut de l'utilisateur. Ceci peut être remplacé par l'option -u umask option pour sftp-server

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

Le client (OpenSSH sftp) peut choisir de préserver la permission locale en utilisant l'option -p qui enverra le fichier puis le fchmodera de manière appropriée.

SFTP(1) 
     -p      Preserves modification times, access times, and modes from the 
             original files transferred.

Si vous demandez strictement comment définir un mode de fichier obligatoire avec le client sftp, vous ne pouvez pas (du moins avec openssh sftp-client). Vous devrez envoyer un chmod après avoir envoyé le fichier.

0voto

Raminlich Points 43

Je pense que le serveur sftp utilisera le umask par défaut du profil de l'utilisateur à moins qu'il n'ait été démarré avec un umask explicite (man 8 sftp-server pour plus de détails).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X