¿Cómo copio archivos en `/ var / www` con WinSCP?

11

Cuando intento colocar mis archivos web /var/wwwen apache en mi instancia de ec2 Ubuntu, me da un error que indica que no tengo permiso.

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

¿Cómo me doy permiso para hacer esto o cuál es la mejor manera de copiar archivos /var/wwwcon WinSCP?

Andrés
fuente

Respuestas:

15

Recibía el mismo error en WinSCP. Una solución es cambiar la propiedad de la carpeta '/ www /' usando chown. De esa manera, puede hacer que el usuario con el que inicie sesión sea propietario en lugar de ser 'root' como propietario. Estoy usando una instancia de Amazon Linux en lugar de Ubuntu, pero este comando funcionó para mí:

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

El usuario 'ec2-user' es el usuario con el que inicio sesión.

Enlaces potencialmente útiles

  • alestic.com : Uso de sudo, ssh, rsync en las imágenes oficiales de Ubuntu para EC2
  • apache.com : lista de comandos
Chrisfargen
fuente
Es probable que sus solicitudes de ayuda como parte de una respuesta a la pregunta de otra persona no reciban respuestas o comentarios útiles. Para obtener eso, probablemente sea mejor que haga su propia pregunta con los detalles precisos que necesita.
Killermist
9

Habilite los permisos de escritura para el usuario que inicia sesión a través de WinSCP. Hay dos maneras de hacer esto.

La primera forma es cambiar los permisos en la carpeta para permitir que cualquiera pueda escribir en ella. Esta no es la mejor seguridad.

chmod 777 /var/www


La segunda forma es agregar su usuario al grupo que posee el directorio y luego establecer permisos para que el grupo escriba en el directorio.

Averigüe quién es el propietario del directorio:

ls -l /var | grep www

Verá algo como: drwxr-x --- 9 www-data www-data 4096 14 de julio de 2009 www Lo importante a tener en cuenta son los dos nombres raíz y raíz. En este caso, el propietario del directorio es www-data, y el grupo del directorio es www-data. Así que ahora agregará su usuario al grupo www-data.

usermod -G www-data user

Ahora solo agregue el permiso de escritura al grupo.

chmod 770 /var/www

Ahora

ls -l /var | grep www

debería volver: drwxrwx --- 9 www-data www-data 4096 14 de julio de 2009 www

Con esto, podrá escribir en el directorio, sin abrir privilegios de escritura para todos.

Chris Ting
fuente
1
ligera corrección de exactitud - sudo chmod 777 / var / www - sudo usermod -G www-data (nombre de usuario) - sudo chmod 770 / var / www - Puede funcionar dependiendo de quién es usted en su ejemplo, pero 'sudo' debería funcionar no importa quién es usted (suponiendo que su inicio de sesión esté en / etc / sudoers para root / admin, por supuesto).
bshea
1

en ec2 esto funciona para mí. inicie sesión en box a través de masilla con el usuario "ec2-user" y use los comandos:

sudo root
chmod 777 <NAME_OF_FOLDER>

Nota: esto otorga acceso de escritura para todos los usuarios.

Ahora debería poder escribir usando WinScp.

cielo azul
fuente
1

El siguiente tutorial funcionó para mí y proporciona capturas de pantalla útiles. Iniciar sesión como usuario normal con permisos de sudo simplemente requería ajustar algunas opciones de WinSCP: http://cvlive.blogspot.de/2014/03/how-to-login-in-as-ssh-root-user-from.html

Establezca el protocolo de sesión / archivo en: SCP, ingrese la dirección IP de host / instancia, el puerto, generalmente 22, y el nombre de usuario normal. Ingrese las credenciales de contraseña si el inicio de sesión lo requiere. Agregue el archivo de clave privada correspondiente del usuario en Avanzado / SSH / Autenticación.

Desmarcar Avanzado / SSH / Autenticación / intento de autenticación "interactiva con el teclado" debería permitir Avanzado / Entorno / SCP Shell / Shell / Shell: sudo su - para proporcionar permisos de sudo para acceder a los directorios del servidor web como usuario no propietario.


Actualizar: 03/08/2017

El registro de WinSCP puede ser útil para solucionar problemas.

winscp.net/eng/docs/logging:

[WinSCP] El registro se puede habilitar desde la página Registro del cuadro de diálogo Preferencias. El registro también se puede habilitar desde la línea de comandos utilizando los parámetros / log y / xmllog respectivamente, lo que es particularmente útil con las secuencias de comandos. En el ensamblado .NET, el registro de sesión se habilita mediante Session.SessionLogPath1).

Dependiendo de los errores de conexión de WinSCP, algunas instalaciones de servidores pueden necesitar una directiva agregada al archivo (Ubunto, CentOS, other-Linux-Server) / etc / sudoers para no requerir TTY para un usuario específico. Crear un archivo en /etc/sudoers.d/ (usando una herramienta como Amazon Command Line Interface o PuTTY) puede ser una mejor opción que editar / etc / sudoers. Algunas versiones de / etc / sudoers lo recomiendan:

Este archivo DEBE editarse con el comando 'visudo' como root. Considere agregar contenido local en /etc/sudoers.d/ en lugar de modificar directamente este archivo. Consulte la página de manual para obtener detalles sobre cómo escribir un archivo sudoers.

Al editar un archivo sudoers (como raíz) a través de la línea de comandos, el comando 'visudo' debe usarse para abrir el archivo, ya que analizará el archivo en busca de errores de sintaxis. Los archivos /etc/sudoers.d/ generalmente son propiedad de root y están modelados con permisos mínimos. Se puede hacer referencia al archivo / etc / sudoers predeterminado, ya que debería tener automáticamente los permisos de chmod recomendados en la instalación. por ejemplo: 0440 r - r -----.

superuser.com/a/869145:

visudo -f /etc/sudoers.d/somefilename

Defaults:username !requiretty 

Enlaces Útiles:

  • 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

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

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

Con el protocolo SCP, puede especificar el siguiente comando como shell personalizado en la página SCP / Shell del cuadro de diálogo Configuración avanzada del sitio:

sudo -s

[...]

Tenga en cuenta que, dado que WinSCP no puede implementar la emulación de terminal, debe tener la opción sudoers requiretty desactivada.

Las instrucciones en Ubuntu Apache / etc / sudoers recomiendan agregar directivas a /etc/sudoers.d en lugar de editar / etc / sudoers directamente. Dependiendo de la instalación, agregar directivas a /etc/sudoers.d/cloud-init puede funcionar también.

Puede ser útil crear un usuario de prueba SSH con permisos de sudo siguiendo los pasos proporcionados en la documentación de la instancia para garantizar que el usuario haya recomendado la configuración de la instancia y que cualquier actualización de los archivos de sudoer del servidor pueda realizarse y eliminarse sin afectar a otros usuarios.

1keown
fuente
0

Debe otorgar al usuario permisos de escritura, recuerde usar los permisos anteriores stat /var/www.

Luego puede cambiarlos con sudo chmod 666 /var/wwwy volver a cambiarlos más tarde cuando sea necesario.

Consulte man chmody man sudojunto con otros manuales de permisos de archivos en Internet para obtener más información ...

Tamara Wijsman
fuente