Come copio i file in `/ var / www` con WinSCP?


11

Quando provo a inserire i miei file web in /var/wwwapache sulla mia istanza ec2 Ubuntu mi dà un errore affermando che non ho il permesso.

Permission denied.
Error code: 3
Error message from server: Permission denied
Request code: 3

Come mi autorizzo a fare questo o qual è il modo migliore per copiare i file /var/wwwcon WinSCP?

Risposte:


15

Stavo ottenendo lo stesso errore in WinSCP. Una soluzione è cambiare la proprietà della cartella '/ www /' usando chown. In questo modo, puoi rendere l'utente con il quale accedi al proprietario anziché "root" come proprietario. Sto usando un'istanza di Amazon Linux anziché Ubuntu, ma questo comando ha funzionato per me:

sudo chown -R -v ec2-user /var/www/

L'utente 'ec2-user' è l'utente con cui eseguo l'accesso.

Link potenzialmente utili

  • alestic.com : utilizzo di sudo, ssh, rsync sulle immagini ufficiali di Ubuntu per EC2
  • apache.com : Elenco dei comandi

È probabile che le tue richieste di aiuto come parte di una risposta alla domanda di qualcun altro non ricevano risposte o feedback utili. Per farlo, probabilmente farai meglio a porre la tua domanda con i dettagli precisi di cui hai bisogno.
assassino

9

Abilitare le autorizzazioni di scrittura per la registrazione dell'utente in WinSCP. Ci sono due modi per farlo.

Il primo modo è modificare le autorizzazioni sulla cartella per consentire a chiunque di scriverle. Questa non è la migliore sicurezza.

chmod 777 /var/www


Il secondo metodo consiste nell'aggiungere l'utente al gruppo proprietario della directory e quindi impostare le autorizzazioni affinché il gruppo scriva nella directory.

Scopri chi possiede la directory:

ls -l /var | grep www

Vedrai qualcosa di simile: drwxr-x --- 9 www-data www-data 4096 14 luglio 2009 www La cosa importante da notare sono i due nomi root e root. In questo caso, il proprietario della directory è www-data e il gruppo della directory è www-data. Quindi ora aggiungerai il tuo utente al gruppo di dati www.

usermod -G www-data user

Ora aggiungi il permesso di scrittura al gruppo.

chmod 770 /var/www

Adesso

ls -l /var | grep www

dovrebbe restituire: drwxrwx --- 9 www-data www-data 4096 14 luglio 2009 www

Con questo sarai in grado di scrivere nella directory, senza aprire i privilegi di scrittura a tutti.


1
leggera correzione per precisione - sudo chmod 777 / var / www - sudo usermod -G www-data (nome utente) - sudo chmod 770 / var / www - Potrebbe funzionare a seconda di chi sei nell'esempio, ma 'sudo' dovrebbe funzionare non importa chi tu sia (supponendo che il tuo login sia in / etc / sudoers per root / admin ovviamente).
bshea,

1

su ec2 questo funziona per me. accedi al box tramite putty con l'utente "ec2-user" e usa i comandi:

sudo root
chmod 777 <NAME_OF_FOLDER>

Nota: questo garantisce l'accesso in scrittura a tutti gli utenti.

Ora dovrebbe essere in grado di scrivere usando WinScp.


1

Il seguente tutorial ha funzionato per me e fornisce schermate utili. Per accedere come utente normale con autorizzazioni sudo è sufficiente modificare alcune opzioni di WinSCP: http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

Impostare il protocollo Session / File su: SCP, inserire l'host / l'ip dell'istanza, la porta - in genere 22 e il nome utente normale. Immettere le credenziali della password se il login lo richiede. Aggiungi il file della chiave privata corrispondente dell'utente in Avanzato / SSH / Autenticazione.

Deselezionando Avanzate / SSH / Autenticazione / il tentativo di autenticazione "tastiera interattiva" dovrebbe consentire Avanzate / Ambiente / SCP Shell / Shell / Shell: sudo su - per fornire autorizzazioni sudo per l'accesso alle directory del server web come utente non proprietario.


Aggiornamento: 08/03/2017

La registrazione di WinSCP può essere utile per risolvere i problemi.

winscp.net/eng/docs/logging:

[WinSCP] La registrazione può essere abilitata dalla pagina Registrazione della finestra di dialogo Preferenze. La registrazione può anche essere abilitata dalla riga di comando utilizzando rispettivamente i parametri / log e / xmllog, cosa particolarmente utile con gli script. Nell'assembly .NET, la registrazione delle sessioni è abilitata utilizzando Session.SessionLogPath1).

A seconda degli errori di connessione WinSCP, alcune installazioni di server potrebbero richiedere l'aggiunta di una direttiva al file (Ubunto, CentOS, altri server Linux) / etc / sudoers per non richiedere TTY per un utente specificato. La creazione di un file in /etc/sudoers.d/ (usando uno strumento come Amazon Command Line Interface o PuTTY) potrebbe essere un'opzione migliore rispetto alla modifica di / etc / sudoers. Alcune versioni / etc / sudoers lo raccomandano:

Questo file DEVE essere modificato con il comando 'visudo' come root. Si prega di considerare l'aggiunta di contenuto locale in /etc/sudoers.d/ invece di modificare direttamente questo file. Vedi la pagina man per i dettagli su come scrivere un file sudoers.

Quando si modifica un file sudoers (come root) tramite la riga di comando, è necessario utilizzare il comando 'visudo' per aprire il file in quanto analizzerà il file per errori di sintassi. I file /etc/sudoers.d/ sono in genere di proprietà di root e codificati con autorizzazioni minime. È possibile fare riferimento al file / etc / sudoers predefinito in quanto dovrebbe disporre automaticamente delle autorizzazioni chmod consigliate per l'installazione. ad es .: 0440 r - r -----.

superuser.com/a/869145:

visudo -f /etc/sudoers.d/somefilename

Defaults:username !requiretty 

Collegamenti utili:

  • Stackoverflow: stackoverflow.com/questions/25688850/cloud-init-how-to-add-default-user-to-sudoers-d
    • www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-on-ubuntu-and-centos

Forum WinSCP: - winscp.net/forum/viewtopic.php?t=3046 - winscp.net/forum/viewtopic.php?t=2109

Documento WinSCP: https://winscp.net/eng/docs/faq_su

Con il protocollo SCP, è possibile specificare il seguente comando come shell personalizzata nella pagina SCP / Shell della finestra di dialogo Impostazioni sito avanzate:

sudo -s

[...]

Si noti che poiché WinSCP non può implementare l'emulazione di terminale, è necessario che l'opzione sudoers sia disattivata.

Le istruzioni in Ubuntu Apache / etc / sudoers raccomandano di aggiungere direttive a /etc/sudoers.d piuttosto che modificare direttamente / etc / sudoers. A seconda dell'installazione, anche l'aggiunta della direttiva a /etc/sudoers.d/cloud-init potrebbe funzionare.

Può essere utile creare un utente test SSH con autorizzazioni sudo seguendo i passaggi forniti nella documentazione dell'istanza per garantire che l'utente abbia raccomandato le impostazioni dell'istanza e che eventuali aggiornamenti ai file sudoer del server possano essere effettuati e rimossi senza influire su altri utenti.


0

Devi dare all'utente le autorizzazioni di scrittura, ricorda le autorizzazioni precedenti usando stat /var/www.

Quindi puoi cambiarli con sudo chmod 666 /var/wwwe cambiarli più tardi quando necessario.

Consultare man chmode man sudoaccanto ad altri manuali di autorizzazione dei file su Internet per ulteriori informazioni ...

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.