Domanda di autenticazione Sublime Text 3 durante il salvataggio del documento


11

Sto usando Sublime Text per lo sviluppo web. Ogni volta che provo a salvare le modifiche (Ctrl + S), viene visualizzata la finestra di autenticazione:

È necessaria l'autenticazione per eseguire '/ bin / cp' come superutente

Ovviamente, quando inserisco la password, Sublime salva correttamente le modifiche. Ma quando premo Annulla , si apre un'altra finestra con un errore:

Errore: administrator_copy_file (/tmp/.Some_File_Here, / var / www / Rest_Of_Path_Here) non riuscito: autorizzazione non riuscita

Dato che sono abbastanza nuovo su Ubuntu, non so come liberarmi di quell'autorizzazione. Ho tutte le autorizzazioni per la cartella / var / www .


Sei sicuro che il tuo utente disponga delle autorizzazioni di scrittura /var/wwwsenza diventare root (ad es. Usando sudo)?
David Bailey,

@DavidBailey Ho i permessi di scrittura /var/wwwma non per le sottocartelle. Ho fatto chownsu /var/www, ma quando ho controllato autorizzazioni per le sottocartelle, ex. /var/www/First_Site, appartiene a www-data. Ho pensato che chownsu una cartella principale mi daranno le autorizzazioni anche a tutte le sottocartelle / file in essa contenuti.
SONGE

Risposte:


6

Non hai il permesso di scrivere /var/www/Rest_Of_Path_Here. ST3 sta cercando di elevare il proprio UID per scrivere come utente corretto (da cui il prompt sudo). Non sapevo che potesse farlo, ma l'ho testato e funziona così, eccoti.

Esistono alcuni modi per risolvere questo problema:

  1. Consenti al tuo utente di scrivere direttamente i file . Così tante opzioni qui:

    • chowni file in modo da possederli. Ciò potrebbe sconvolgere le cose in esecuzione come altri utenti che potrebbero anche aver bisogno di scrivere, ad esempio un server web in esecuzione come utente www. Potrebbe essere necessario modificare anche quello che eseguono.
    • Aggiungi il tuo utente al www-datagruppo e modifica la maschera del file in 774modo che i membri del gruppo possano scrivere / eseguire.
    • Cambia la maschera dei file in modo che altri utenti possano scrivere (ad esempio 777) ... Ma questo è piuttosto rischioso se c'è già qualcosa di dannoso sul server.
    • Utilizzare gli ACL per consentire all'utente di scrivere senza disturbare il framework delle autorizzazioni standard.
  2. Modifica il tuo flusso di lavoro per scrivere in un sistema di controllo della versione (ad esempio git) come i tuoi utenti, quindi esegui uno script mentre l'altro utente lo verifica. Questo porta altri vantaggi.

  3. Esegui ST3 come utente che può scrivere lì:

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

    Questo è molto più brutto della semplice correzione dei file.


Hai ragione. Ho solo i diritti sulla cartella / var / www , ma non su tutte le sottocartelle in essa contenute, a cui appartiene www-data. Penso che la soluzione migliore qui sarà quella di aggiungere il mio utente al www-datagruppo.
SONGE

Solo per far sapere a chiunque. L'aggiunta del mio utente al www-datagruppo ha risolto il problema. Ho dovuto solo riavviare il sistema dopo questo. Grazie @Oli.
SONGE

4

Ho avuto lo stesso problema e sono stato in grado di risolverlo fornendo all'utente il diritto alla particolare cartella che ho dovuto modificare nel testo Sublime 3. Ho usato i seguenti comandi:

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

Penso che potrebbe essere utile per gli altri in futuro.


Grazie mille
:)

0

Aggiungi il tuo utente al gruppo utenti amministratore in uno dei seguenti in base alla versione di Ubuntu che stai utilizzando. Prova entrambi:

sudo usermod -a -G admin username

O

sudo usermod -a -G sudo username

Se sei già nel gruppo admin, prova chowna nella cartella.


Perché? C'è ogni suggerimento che siano già nel gruppo sudo / admin (funziona quando inseriscono la password).
Oli

Forse un chowntestamento farà @Oli
Sharad Gautam

0

Ho lo stesso problema, provando a modificare il file del mio server apache con testo sublime e non voglio incasinare l'autorizzazione del mio server web. Cambiare i tuoi file g + w e mettere il tuo utente nel gruppo www-data non è un'idea molto sicura.

Quello che consiglierei è usare il plugin SFTP per il testo sublime:

  • duplicare il file del server Web in una cartella appartenente al proprio utente
  • configura plugin SFTP con:
"upload_on_save": true,
"host": "localhost",
"user": "www-data",

Non fornire una password nella configurazione perché anche questa è una grave falla di sicurezza.

Sublime-text ti chiederà la password una volta e poi la ricorderà per la sessione. Ad ogni salvataggio di file, aprirà una sessione sftp su localhost e scriverà il file su disco con l'utente appropriato


0

Eseguire quanto segue nel proprio terminale Linux / Unix:

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

Ho provato -R 775e -R 777non ha funzionato così ha funzionato , anche se ho dato i permessi di scrittura a tutti i progetti

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.