Il est désormais possible de créer plusieurs utilisateurs SSH – autant que vous voulez. Cela ouvre la voie à des possibilités intéressantes comme partager un dépôt (Subversion, Git, etc.) en lecture seule.
Quelques détails techniques :
- à chaque pack alwaysdata correspond un groupe (UNIX) du même nom ; chaque utilisateur SSH appartient à ce groupe. Un pack a forcément au moins un utilisateur du même nom : c’est l’utilisateur par défaut ;
- le umask par défaut, qui était jusqu’à présent à 022, est passé à 002 ;
- en conséquence, tous les fichiers créés jusqu’à maintenant dans votre pack ont les droits d’écriture sur l’utilisateur, pas sur le groupe. Cela veut dire que les utilisateurs SSH que vous créerez maintenant ne pourront pas modifier les fichiers existants. Pour pallier cela et donner au groupe les mêmes droits qu’à l’utilisateur, vous pouvez exécuter à la racine de votre pack la commande :
find . ‑exec /bin/sh ‑c “echo « {} » && chmod g=“ls ‑ld « {} » | cut ‑c2‑4“ « {}« “ \;
- à vous de gérer les permissions de vos fichiers comme bon vous semble : vous avez toute la puissance (et les limitations) de la gestion de droits UNIX ;
- parmi les limitations UNIX, vous ne pouvez pas changer le propriétaire d’un répertoire ou fichier. Contactez-nous si vous devez vraiment faire un chown.
N’hésitez pas à nous faire des retours et à nous dire dans quel but vous utilisez plusieurs utilisateurs SSH. Le support des ACLs peut notamment être envisageable si certains nous le demandent.
PS : la mise en production de cette fonctionnalité a provoqué quelques perturbations le 8 avril dernier, de 12h à 12h30. Les utilisateurs utilisant notre système d’environnement Python/Ruby ont été impactés et ont pu voir leur application ne plus démarrer momentanément. Nous vous présentons toutes nos excuses pour ce dérangement.
Bonjour,
Tout d’abord, un grand merci pour votre service de qualité, et d’avoir enfin ajouté cette fonctionalité, que j’attendais avec une certaine impatience !
Cependant, la commande donnée semble ne pas fonctionner :
$ find . ‑exec /bin/sh ‑c ‘echo “{}” && chmod g=“ls ‑ld “{}” | cu‑4“ “{}”‘ \;
find : missing argument to “-exec”
À bientôt,
Ejis.
Attention, WordPress a remplacé les quotes traditionnels par des quotes littéraires. Remplacez donc bien les simple et double quotes par le symbole traditionnel (situé respectivement sur la touche 4 et 3 d’un clavier AZERTY).
Effectivement.
Merci et désolé du dérangement !
Cependant, la commande donnée semble ne pas fonctionner :
$ find . ‑exec /bin/sh ‑c ‘echo “{}” && chmod g=“ls ‑ld “{}” | cu‑4“ “{}”‘ \;
find : missing argument to “-exec’
Confronté au même soucis, la solution est de remplacer
´ls ‑ld « {} » | cut ‑b 2 – 4´ par $(ls ‑ld « {} » | cut ‑b 2 – 4).
La commande devient (avec simples et double quotes) :
find . ‑exec /bin/sh ‑c “echo « {} » && chmod g=$(ls ‑ld « {} » | cut ‑b 2 – 4) « {}« “ \;
Pour éclairer la lanterne de ceux qui sont dans le brouillard, la commande regarde en fait les droits (de la forme rw-) du propriétaire de chaque fichier (ls ‑ld « {} » | cut ‑b 2 – 4) et les attribue au groupe (chmod g=). Je n’ai pas pu expliquer pourquoi les anti guillemets ne fonctionnent pas.