Question d'authentification Sublime Text 3 lors de l'enregistrement du document

11

J'utilise Sublime Text pour le développement web. Chaque fois que j'essaie d'enregistrer les modifications (Ctrl + S), la fenêtre d'authentification apparaît:

L'authentification est nécessaire pour exécuter '/ bin / cp' en tant que super utilisateur

Évidemment, lorsque j'entre le mot de passe, Sublime enregistre les modifications correctement. Mais lorsque j'appuie sur Annuler , une autre fenêtre apparaît avec une erreur:

Erreur: fichier_copy_administrateur (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) a échoué: Échec de l'autorisation

Comme je suis assez nouveau sur Ubuntu, je ne sais pas comment me débarrasser de cette fenêtre d'autorisation. J'ai toutes les autorisations sur le dossier / var / www .

SONGE
la source
Vous êtes sûr que votre utilisateur dispose d'autorisations en écriture /var/wwwsans devenir root (par exemple en utilisant sudo)?
David Bailey
@DavidBailey J'ai des autorisations d'écriture sur, /var/wwwmais pas sur les sous-dossiers. Je l' ai fait chownsur /var/wwwmais quand je l' ai vérifié les autorisations sur les sous - dossiers, ex. /var/www/First_Site, il appartient www-data. Je pensais que chownsur un dossier principal me donnerait également des autorisations sur tous les sous-dossiers / fichiers qu'il contient.
SONGE

Réponses:

6

Vous n'avez pas la permission d'écrire /var/www/Rest_Of_Path_Here. ST3 tente d'élever son UID pour écrire en tant qu'utilisateur correct (d'où l'invite sudo). Je ne savais pas que cela pouvait le faire, mais je l'ai testé et cela fonctionne, alors voilà.

Il existe plusieurs façons de résoudre ce problème:

  1. Autorisez votre utilisateur à écrire les fichiers directement . Tant d'options ici:

    • chownles fichiers pour que vous les possédiez. Cela peut perturber les choses en cours d'exécution comme d'autres utilisateurs qui pourraient également avoir besoin d'écrire, par exemple un serveur Web fonctionnant en tant qu'utilisateur www. Vous devrez peut-être également modifier leur exécution.
    • Ajoutez votre utilisateur au www-datagroupe et changez le masque de fichier pour 774que les membres du groupe puissent écrire / exécuter.
    • Modifiez le masque de fichier pour que les autres utilisateurs puissent écrire (par exemple 777) ... Mais cela est assez risqué s'il y a déjà quelque chose de malveillant sur le serveur.
    • Utilisez les listes de contrôle d' accès pour permettre à votre utilisateur d'écrire sans perturber le cadre des autorisations standard.
  2. Modifiez votre flux de travail pour écrire dans un système de contrôle de version (par exemple git) en tant que vos utilisateurs, puis faites exécuter un script pendant que l'autre utilisateur le vérifie. Cela comporte d'autres avantages.

  3. Exécutez ST3 en tant qu'utilisateur pouvant y écrire:

    sudo -u www-data subl /var/www/Rest_Of_Path_Here
    

    C'est beaucoup plus laid que de simplement réparer les fichiers.

Oli
la source
Tu as raison. Je n'ai que des droits sur le dossier / var / www , mais pas sur tous les sous-dossiers qu'il contient www-data. Je pense que la meilleure solution ici sera d'ajouter mon utilisateur au www-datagroupe.
SONGE
Juste pour que quelqu'un le sache. L'ajout de mon utilisateur au www-datagroupe a résolu le problème. Je devais juste redémarrer le système après cela. Merci @Oli.
SONGE
4

J'ai eu le même problème et j'ai pu le résoudre en fournissant un droit d'utilisateur au dossier particulier que j'ai dû modifier dans Sublime text 3. J'ai utilisé les commandes suivantes:

sudo chmod 775 -R projectname/   
sudo chown username -R projectname/

Je pense que cela pourrait être utile à d'autres à l'avenir.

Isaac Shrestha
la source
Merci beaucoup
:)
0

Ajoutez votre utilisateur au groupe d'utilisateurs administrateur par l'un des éléments ci-dessous en fonction de la version d'Ubuntu que vous utilisez. Essayez les deux:

sudo usermod -a -G admin username

OU

sudo usermod -a -G sudo username

Si vous êtes déjà dans le groupe admin, essayez un chownsur le dossier.

Sharad Gautam
la source
Pourquoi? Il y a toutes les suggestions qu'ils sont déjà dans le groupe sudo / admin (cela fonctionne quand ils ont entré leur mot de passe).
Oli
Peut-être qu'une chownvolonté fera @Oli
Sharad Gautam
0

J'ai le même problème, en essayant d'éditer le fichier de mon serveur apache avec du texte sublime et je ne veux pas gâcher l'autorisation de mon serveur Web. Changer vos fichiers g + w et mettre votre utilisateur dans le groupe www-data n'est pas une idée très sûre.

Ce que je conseillerais, c'est d'utiliser le plugin SFTP pour sublime-text:

  • dupliquez le fichier de votre serveur Web dans un dossier appartenant à votre propre utilisateur
  • configurer le plugin SFTP avec:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

Ne fournissez pas de mot de passe dans la configuration car il s'agit également d'une faille de sécurité majeure.

Sublime-text vous demandera le mot de passe une fois puis s'en souviendra pour la session. À chaque sauvegarde de fichier, il ouvrira une session sftp sur localhost et écrira le fichier sur le disque avec l'utilisateur approprié

Pascal Fournier
la source
0

Effectuez les opérations suivantes dans votre terminal Linux / Unix:

sudo chmod -R 777 project-name
sudo chown user-name project-name

Essayé -R 775et -R 777n'a pas fonctionné, l'astuce aussi, bien que j'aie accordé des autorisations d'écriture à tous les projets

Jose Mhlanga
la source