19 votos

Cómo agregar usuario con SFTP/ FTP el acceso a '/var/www/html/website_abc' carpeta en Amazon EC2 Centos?

Posibles Duplicados:
Directorio de Linux permisos

Estoy trabajando con algunos de los desarrolladores de terceros y me gustaría conceder SFTP (FTP o) el acceso a la carpeta root de un sitio web que estamos trabajando en decir, '/var/www/html/website_abc' , de modo que pudieran subir los archivos allí. Tenga en cuenta que estoy de hosting mis otros sitios web que hay en la misma instancia de EC2 por ejemplo '/var/www/html/website_xyz'.

Solo para recalcar que estoy trabajando con varios sitios web en 1 sola instancia de EC2, la estructura de los sitios web son como sigue:

/var/www/html/
/var/www/html/website_abc
...
/var/www/html/website_xyz

Mis objetivos son como sigue:

  • El usuario 'adeveloper' tiene acceso a "/var/www/html/website_abc' y sólo '/var/www/html/website_abc'
    • Supongo usuario 'adeveloper' uso 'adeveloper@[mi elastic IP]' como nombre de usuario de inicio de sesión para SFTP (o FTP), estoy en lo cierto?
  • El usuario 'adeveloper' no tienen acceso a '/var/www/html/' o cualquier otro directorios en mi instancia de EC2
  • Cómo sobre el archivo de clave privada?
    • Puedo pasar mi archivo de clave privada para los desarrolladores de terceros - es aconsejable hacerlo?
    • Es allí una manera de generar diferentes archivo de clave privada para ellos o que les permiten iniciar sesión con nombre de usuario y contraseña en su lugar?

He hecho búsquedas, pero la mayoría de las personas estaban hablando acerca de cómo acceder a EC2 a través de SFTP que yo ya estoy de ser capaz de usar el WinSCP.

Aclaraciones:

  • Necesitaría 'adeveloper' para ser capaz de cargar materias a /var/www/html/website_abc 'escribir' permiso
  • Necesitaría 'adeveloper' no tener 'escribir' el permiso para que los archivos/ directorios bajo /var/www/html/, y lo ideal sería incluso 'leer' permiso
  • Sin embargo, no parece ser gran problema aquí:
    • /var/www/html/ ya tiene permiso 777 ya que esta es mi carpeta DocumentRoot. Así que, ¿cómo hago para dejar de 'adeveloper" de acceder a mi otro sitio web?

Resuelto en parte He logrado logrado mis metas el uso de OpenSSH (que creo .ssh carpeta dentro de /var/www/html/website_abc/ y generar la clave privada y dar a los desarrolladores de terceros). También aprendí que nunca debía dar el archivo de clave privada de AWS me dio. Aprende sobre chroot.

11voto

Tom H Puntos 6181

Por defecto, los servicios que proporcionan un shell remoto, como ssh o telnet, o un sistema interactivo de sesión remota de comandos como sftp, permitir que un usuario local a cambio en cualquier directorio tienen permisos, y recuperar una copia de cualquier archivo que tengan acceso.

Como un general de la configuración de seguridad esto es lamentable porque hay muchos archivos y directorios que están legible por todo el mundo de la necesidad. Por ejemplo, aquí está mí un usuario no root en algún remoto CentOS caja;

$ cd /etc
-bash-3.2$ ls -1
acpi
adjtime
aliases
...

por ejemplo, puedo acceder a un montón de cosas, que, idealmente, usted quiere restringir de algún desconocido usuario que desea proporcionar acceso local.

Aquí se me ve todos los usuarios locales configurados en la /etc/passwd archivo;

$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...

Los sistemas Unix proporcionan la chroot comando que permite restablecer el / de el usuario a algún directorio en la jerarquía del sistema de archivos, donde se puede acceder a "superior" de archivos y directorios.

Sin embargo, en su caso, sería apropiada para proporcionar una virtual chroot implementado por el servicio de shell remoto. sftp puede ser fácilmente configurado para restringir el acceso de un usuario local a un subconjunto específico del sistema de archivos mediante una configuración en la

por lo tanto, en su caso, desea chroot el adeveloper de usuario en la /var/www/html/website_abc directorio.

Usted puede establecer un chroot en el directorio de tu usuario para confinarlos en el subdirectorio /var/www/html/website_abc como en /etc/ssh/sshd_config;

Esto requiere openssh-server después de 4.8?, así que probablemente requiere de CentOS 6.2

Match Group sftp
    ChrootDirectory %h
    AllowTcpForwarding no

(no probado, ver man sshd_config para confirmar la sintaxis)

y, a continuación, agregue los usuarios al sftp grupo;

 groupadd sftp
 usermod -d /var/www/html/website_abc adeveloper
 usermod -G sftp adeveloper

Con respecto a claves compartidas

se debe crear un par de claves adicionales para la adeveloper los usuarios, y enviar a su asesor. (o, alternativamente, deben enviar su clave pública y añadirlo al archivo authorized_keys para adeveloper)

nunca renunciar a su clave privada, por eso es llamado privado ;-)

tradicional ftp alternativas

vsftp/proftp etc también apoyo chroot configuraciones, pero en este día moderno basado en ssh, las configuraciones de la manera normal, y soporte para ftp, es histórica única.

hay un par de enlaces a tutoriales de aquí;
http://www.techrepublic.com/blog/opensource/chroot-users-with-openssh-an-easier-way-to-confine-users-to-their-home-directories/229

http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: