1 votes

Copier des fichiers avec WinSCP : Permission refusée

Plate-forme : Google Compute Engine

Instance VM : pytorch-latest-gpu-20190911

commande de connexion : $ gcloud compute ssh jupyter@my-fastai-instance -- -L 8080:localhost:8080

Afin d'économiser le temps de facturation de GCP, j'ai cloné le cours fastai v3 et les bibliothèques sur ma machine locale, ce qui me permet de jouer avec des opérations non gourmandes en calcul comme la création d'ensembles de données, etc.

Après avoir créé plusieurs jeux de données localement, j'ai essayé de copier les dossiers sur mon instance vm à l'aide de WinSCP. Mais j'ai obtenu l'erreur "Permission refusée". Après beaucoup de frustration, j'ai découvert que cela était dû au fait que les répertoires /home appartenaient à 'jupyter'. J'ai alors utilisé $ sudo chown -R my-username ~/jupyter pour changer la propriété de mon nom d'utilisateur. Cela m'a permis de copier toutes mes données locales sur gce via WinSCP. Mais lorsque j'ai essayé d'exécuter mes carnets de notes dans gce, ils ne se sont pas exécutés. Pour les exécuter, j'ai dû rétablir la propriété de 'jupyter'.

Ma question est donc la suivante : comment puis-je changer le propriétaire de /home en mon_nom_d'utilisateur tout en permettant à Jupyter d'exécuter mes carnets de notes ? Est-ce que c'est un paramètre de Jupyter ou dois-je faire quelque chose d'autre ? Mon but est de transférer librement des fichiers avec WinSCP sans avoir à changer la propriété des répertoires de Jupyter.

1voto

harrymc Points 394411

WinSCP.net a publié une description détaillée de la procédure à suivre dans l'article
Connexion sécurisée au serveur Google Compute Engine avec SFTP .

L'article lui-même est beaucoup trop long et détaillé pour être reproduit ici. En résumé, il décrit comment :

  • Générez votre clé privée
  • Collecte d'informations sur votre instance CME
  • Configurer les clés SSH pour votre compte Google Compute
  • Configuration de la connexion WinSCP

1voto

Jorge Valentini Points 424

Je n'ai jamais travaillé dans ce même scénario, mais je suppose que jupyter est un utilisateur typique avec un dossier personnel. Vous auriez pu ajouter votre nom d'utilisateur au groupe jupyter au lieu d'en prendre la propriété.

Lorsque vous exécutez ls -l /home vous pouvez voir les permissions actuelles des dossiers de l'utilisateur. Prenons un exemple :

ls -l /home | grep jupyter
drwxr-xr-x 13 jupyter jupyter   4096 Sep  8 10:26 jupyter

Le premier jupyter est le nom d'utilisateur, le second jupyter est le nom du groupe. Vous pouvez voir que les permissions sont les suivantes :

  • rwx pour l'utilisateur jupyter .
  • r-x pour les membres du groupe jupyter .
  • r-x pour le reste des utilisateurs.

Dans ce cas, vous pouvez ajouter votre utilisateur au groupe jupyter édition /etc/group/ :

jupyter:x:1001:bill

puis ajoutez les autorisations appropriées pour le groupe :

chmod -R g+w /home/jupyter

Ce qui signifie en gros "modifier récursivement les permissions dans /home/jupyter pour ajouter les permissions d'écriture au groupe". Vous devriez maintenant voir les permissions comme suit :

ls -l /home | grep jupyter
drwxrwxr-x 13 jupyter jupyter   4096 Sep  8 10:26 jupyter

Notez la différence, maintenant les permissions UGO (utilisateur, groupe, autre) sont 'drwxr'. w xr-x'

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