Sublime Text 3-Authentifizierungsfrage beim Speichern des Dokuments

11

Ich verwende Sublime Text für die Webentwicklung. Jedes Mal, wenn ich versuche, Änderungen zu speichern (Strg + S), wird das Authentifizierungsfenster angezeigt:

Die Authentifizierung ist erforderlich, um '/ bin / cp' als Superuser auszuführen

Wenn ich das Passwort eingebe, speichert Sublime die Änderungen natürlich korrekt. Wenn ich jedoch auf Abbrechen drücke , wird ein anderes Fenster mit einem Fehler angezeigt:

Fehler: Administrator_copy_file (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) fehlgeschlagen: Autorisierung fehlgeschlagen

Da ich Ubuntu noch nicht kenne, weiß ich nicht, wie ich dieses Autorisierungs-Popup entfernen soll. Ich habe alle Berechtigungen für den Ordner / var / www .

SONGE
quelle
Sie sind sicher, dass Ihr Benutzer Schreibberechtigungen hat, /var/wwwohne root zu werden (z. B. mit sudo)?
David Bailey
@DavidBailey Ich habe Schreibberechtigungen /var/wwwfür die Unterordner , jedoch nicht für diese. Ich habe getan , chownauf , /var/wwwaber wenn ich habe Berechtigungen für Unterordner geprüft, ab. /var/www/First_Sitegehört es zu www-data. Ich dachte, dass ich chownin einem Hauptordner auch Berechtigungen für alle Unterordner / Dateien darin erhalten werde.
SONGE

Antworten:

6

Sie haben keine Erlaubnis zum Schreiben /var/www/Rest_Of_Path_Here. ST3 versucht, seine UID zu erhöhen, um als korrekter Benutzer zu schreiben (daher die sudo-Eingabeaufforderung). Ich wusste nicht, dass es das kann, aber ich habe es getestet und es funktioniert, also los geht's.

Es gibt einige Möglichkeiten, wie Sie dies beheben können:

  1. Ermöglichen Sie Ihrem Benutzer, die Dateien direkt zu schreiben . So viele Möglichkeiten hier:

    • chowndie Dateien, damit Sie sie besitzen. Dies kann Dinge stören, die als andere Benutzer ausgeführt werden, die möglicherweise ebenfalls schreiben müssen, z. B. einen Webserver, der als WWW-Benutzer ausgeführt wird. Möglicherweise müssen Sie auch ändern, wie sie ausgeführt werden.
    • Fügen Sie Ihren Benutzer zur www-dataGruppe hinzu und ändern Sie die Dateimaske in, 774damit Mitglieder der Gruppe schreiben / ausführen können.
    • Ändern Sie die Dateimaske, damit andere Benutzer schreiben können (z. B. 777). Dies ist jedoch ziemlich riskant, wenn auf dem Server bereits etwas Bösartiges vorhanden ist.
    • Verwenden Sie ACLs , damit Ihr Benutzer schreiben kann, ohne das Standardberechtigungsframework zu stören.
  2. Ändern Sie Ihren Workflow so, dass er als Benutzer in ein Versionskontrollsystem (z. B. git) schreibt, und führen Sie dann ein Skript aus, während der andere Benutzer es auscheckt. Dies bringt weitere Vorteile mit sich.

  3. Führen Sie ST3 als Benutzer aus, der dort schreiben kann:

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

    Dies ist viel hässlicher als nur das Reparieren der Dateien.

Oli
quelle
Du hast recht. Ich habe nur Rechte für den Ordner / var / www , aber nicht für alle darin enthaltenen Unterordner www-data. Ich denke, die beste Lösung besteht darin, meinen Benutzer zur www-dataGruppe hinzuzufügen .
SONGE
Nur um es jemanden wissen zu lassen. Das Hinzufügen meines Benutzers zur www-dataGruppe hat das Problem gelöst. Danach musste ich das System nur noch neu starten. Danke @Oli.
SONGE
4

Ich hatte das gleiche Problem und konnte es lösen, indem ich dem bestimmten Ordner, den ich in Sublime Text 3 bearbeiten musste, ein Benutzerrecht gewährte. Ich habe die folgenden Befehle verwendet:

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

Ich denke, es könnte in Zukunft für andere hilfreich sein.

Isaac Shrestha
quelle
Vielen Dank
:)
0

Fügen Sie Ihren Benutzer der Administrator-Benutzergruppe hinzu, indem Sie eine der folgenden Optionen verwenden, basierend auf der von Ihnen verwendeten Ubuntu-Version. Versuchen Sie beide:

sudo usermod -a -G admin username

ODER

sudo usermod -a -G sudo username

Wenn Sie bereits in der Administratorgruppe sind, versuchen Sie es chownmit dem Ordner.

Sharad Gautam
quelle
Warum? Es gibt jeden Vorschlag, dass sie bereits in der sudo / admin-Gruppe sind (es funktioniert, wenn sie ihr Passwort eingeben).
Oli
Vielleicht wird ein chownWille tun @Oli
Sharad Gautam
0

Ich habe das gleiche Problem beim Versuch, die Datei meines Apache-Servers mit erhabenem Text zu bearbeiten, und ich möchte die Berechtigung meines Webservers nicht durcheinander bringen. Das Ändern Ihrer Dateien g + w und das Einfügen Ihres Benutzers in die WWW-Datengruppe ist keine sehr sichere Idee.

Was ich empfehlen würde, ist die Verwendung des SFTP-Plugins für erhabenen Text:

  • Duplizieren Sie die Datei Ihres Webservers in einen Ordner, der Ihrem eigenen Benutzer gehört
  • Konfigurieren Sie das SFTP-Plugin mit:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

Geben Sie in der Konfiguration kein Kennwort an, da dies ebenfalls eine große Sicherheitslücke darstellt.

Sublime-Text fragt Sie einmal nach dem Passwort und merkt es sich dann für die Sitzung. Bei jedem Speichern der Datei wird eine SFTP-Sitzung für localhost geöffnet und die Datei mit dem entsprechenden Benutzer auf die Festplatte geschrieben

Pascal Fournier
quelle
0

Führen Sie in Ihrem Linux / Unix-Terminal Folgendes aus:

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

Versucht -R 775und nicht funktioniert, -R 777auch der Trick, obwohl ich allen Projekten Schreibberechtigungen erteilt habe

Jose Mhlanga
quelle