2010-12-21 51 views
10

estoy usando pscp para transferir archivos a un servidor ubuntu virtual usando este comando:pscp y conseguir permiso denegado

pscp test.php [email protected]:/var/www/test.php 

y obtener el permiso de error negado. Si trato de transferir a la carpeta/home/user/no tengo problemas.

Supongo que esto tiene que ver con que el usuario que estoy usando no tiene acceso a la carpeta/var/www /. Cuando uso SSH tengo que usar sudo para acceder a la ruta/var/www/- y lo hago.

¿Es posible especificar que pscp debe "sudo" transferir al servidor para que pueda acceder a la ruta/var/www/y realmente pueda transferir archivos a esta carpeta?

+0

enviado el archivo a '/ home/usuario/test.php'. Luego use 'plink' u otro cliente SSH para mover el archivo allí usando sudo si es necesario. Creo que es mejor que jugar con permisos y romper todo. –

Respuesta

9

Si es el propietario del servidor:

agregarse al grupo www-data:

sudo usermod -G -a www-data <username> 

y establezca los permisos correctos:

sudo chown -R www-data:www-data /var/www/ 
sudo chmod -R 0775 /var/www/ 

Esto debería hacer el truco.

+1

Me gustaría tomar nota de los propietarios actuales de algunas de las carpetas como la realización de la anterior rompió uno de mis sitios. Soy consciente de que es mi culpa, sin embargo tuve que cambiar la propiedad de nuevo porque había configurado ruby ​​/ rails/rvm para usar un conjunto separado de nombres de usuario. –

+0

Debería haber leído este comentario antes de sumergirse y ejecutar esos comandos. Hemos atornillado por completo nuestra instancia EC2 en el trabajo, y ahora el servidor dev está apagado por unas horas. :(Tenga cuidado al usar 'sudo' !! – Jonathan

+3

' sudo usermod -a -G www-data 'trabajado para mí –

7

Cuidado con la siguiente que cuando se escribe

sudo usermod -G www-data <username> 

La opción -G hará que el usuario especificado() un miembro del grupo (s) particular que se indiquen. Por lo tanto, la declaración anterior hará que el usuario forme parte del grupo www-data PERO eliminará al usuario de cualquier otro grupo al que pertenezca el usuario. Para evitar esto, debe agregar la opción -a o especificar todos los grupos actuales de los que desea que el usuario forme parte. Accidentalmente saqué al usuario "administrador" del grupo de sudo porque no sabía esto. Por lo tanto, si desea que el usuario especificado conserve su pertenencia al grupo actual, escriba el siguiente comando.

sudo usermod -G -a www-data <username> 

Para más información en relación con el comando usermod, visite:

Ubuntu manpages - usermod