?>/script>'; } ?> Pure-ftpd add users??? Widgets Magazine

Autor Tema: Pure-ftpd add users???  (Leído 5718 veces)

0 Usuarios y 1 Visitante están viendo este tema.

miniyo88

  • Visitante
Pure-ftpd add users???
« en: 28-01-2014, 00:12 (Martes) »
Buenas, cuando instalamos el pureftpd por defecto se conecta con el usuario y contraseña del router, eso no me molestaba ya que era el único usuario con acceso al FTP.
Ahora me ha tocado trabajar en grupo en clase y quiero habilitar una carpeta para que todos los usuarios podamos colgar ahí cada uno su parte del proyecto.
Alguien me podría decir como crear usuarios solo para esa carpeta del FTP, es decir que no tengan acceso de lectura y escritura a demás sitios del router o si puede ser que solo vean esan carpeta.
he probado con este código que he encontrado y creado el usuario pero me da acceso denegado al intentar conectar

Código: [Seleccionar]
# cp /etc/passwd /etc/passwd.bak # just in case you e.g. forget one of the >s
# echo 'ftpuser:x:1000:1000:ftp user:/home/ftpuser:/bin/sh' >>/etc/passwd
# cp /etc/shadow /etc/shadow.bak
# echo 'ftpuser:x:15020:0:99999:7:::' >>/etc/shadow
# cp /etc/group /etc/group.bak
# echo 'ftpuser:x:1000:' >>/etc/group
# cp /etc/gshadow /etc/gshadow.bak
# echo 'ftpuser:x:1000:' >>/etc/gshadow
# passwd ftpuser
# mkdir /home/ftpuser
# chown ftpuser:ftpuser /home/ftpuser

he cambiado directorios y id de usuario y grupo así tengo los archivos:

archivo group:
Código: [Seleccionar]
root:x:0:
daemon:x:1:
adm:x:4:
mail:x:8:
audio:x:29:
www-data:x:33:
ftp:x:55:
users:x:100:
network:x:101:
nogroup:x:65534:
smbusers:x:1001:
ftpuser:x:1002:

archivo passwd:
Código: [Seleccionar]
root:x:0:0:root:/root:/bin/ash
daemon:*:1:1:daemon:/var:/bin/false
ftp:*:55:55:ftp:/home/ftp:/bin/false
network:*:101:101:network:/var:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false
smbadmin:*:1001:1001:smbusers:/mnt/sda3/samba:/bin/false
Miniyo-HP:$1$pDDYCZAc$3Fhtf1fmaw9/twJdwHUnz.:1002:1001:smbusers:/mnt/sda3/samba/homes/Miniyo-HP:/bin/false
ftpuser:x:1001:1002:ftp user:/mnt/sda3/FTP/ftpuser:/bin/false

archivo shadow:
Código: [Seleccionar]
root:$1$fF.0MLRy$J24Bzvh5dJoeWfeJnDPp5.:15992:0:99999:7:::
daemon:*:0:0:99999:7:::
ftp:*:0:0:99999:7:::
network:*:0:0:99999:7:::
nobody:*:0:0:99999:7:::
ftpuser:$1$.GdMFzEs$hZzz6eGOBqS.nrVWCFRnC.:16097:0:99999:7:::

archivo gshadow:
Código: [Seleccionar]
ftpuser:x:1002:
archivo /etc/config/pure-ftpd:
Código: [Seleccionar]
config pure-ftpd
option port             '21'
option noanonymous      '1'
option chrooteveryone   '1'
option maxclientsperip  '10'
option maxclientsnumber '4'
option peruserlimits    '3:4'
option umask            '133:022'
option authentication   'unix'
option enabled          '1'

a ver si me echáis un cable tenemos que empezar a trabajar ya el martes ya tenemos que presentar la primera parte del proyecto.
gracias  :-*
« Última modificación: 28-01-2014, 00:16 (Martes) por miniyo88 »

miniyo88

  • Visitante
Re: Pure-ftpd add users???
« Respuesta #1 en: 28-01-2014, 01:32 (Martes) »
he instalado el paquete shadow que trae addgroup, adduser,...
y he seguido esta guía
http://download.pureftpd.org/pub/pure-ftpd/doc/README.Virtual-Users
me crea el grupo y el usuario con el password y todo lo que dice en vez de joe le he llamado prueba pero sigue sin dejarme entrar con el usuario.
en la guía pone esto :
Citar
------------------------ ENABLING VIRTUAL USERS ------------------------
 
 
Of course, to use virtual users, you have to enable their support in the FTP
server itself. At compile-time, this is done by giving --with-puredb to
./configure (--with-everything also enables it and binary packages have it
compiled in) .

Then, add this switch to your usual pure-ftpd switches:

-l puredb:/path/to/puredb_file

If long options are enabled, you can also use --login instead of -l .

Let's run the server with automatic creation of home directories and puredb
authentication:

/usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &

alguien lo tiene compilado así? debería compilarlo para que funcione?
en el script de init.d he puesto esto
Código: [Seleccionar]
service_start /usr/sbin/pure-ftpd -B $args -j -l puredb:/etc/pureftpd.pdb &


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re: Pure-ftpd add users???
« Respuesta #2 en: 28-01-2014, 08:43 (Martes) »
Has mirado lo que está explicado en la wiki ?

http://wiki.openwrt.org/doc/uci/pure-ftpd

Aquí tienes un tutorial (en castellano, aunque para otro S.O.) dónde también se trata el mismo tema: http://tuxjm.net/docs/pure-ftpd-howto.txt
« Última modificación: 28-01-2014, 08:46 (Martes) por jar229 »

miniyo88

  • Visitante
Re: Pure-ftpd add users???
« Respuesta #3 en: 28-01-2014, 10:25 (Martes) »
a la hora de añadir el ususario del sistema he de poner esto tal cual useradd -g ftpgroup -d /dev/null -s /etc ftpuser o cambiar la rutas? como el wiki es para otro linux, ahora voy a probar con lo del wiki a ver si lo consigo.
al final compilé el paquete --with-puredb aunque no hacia falta porque a la hora de compilar tiene --with-everything

miniyo88

  • Visitante
Re: Pure-ftpd add users???
« Respuesta #4 en: 28-01-2014, 12:36 (Martes) »
gracias jar ya he conseguido crear usuarios virtuales, ahora lo que me pasa es que no me deja crear archivos ni carpetas cuando me logueo con esos usuarios

Código: [Seleccionar]
Estado: Directorio listado correctamente
Estado: Creando directorio '/Nuevo directorio'...
Comando: MKD Nuevo directorio
Respuesta: 550 Can't create directory: Permission denied
Comando: MKD /Nuevo directorio
Respuesta: 550 Can't create directory: Permission denied
Estado: Creando directorio '/Nuevo directorio'...
Comando: MKD Nuevo directorio
Respuesta: 550 Can't create directory: Permission denied
Comando: MKD /Nuevo directorio
Respuesta: 550 Can't create directory: Permission denied

en el config esta el umask 133:022 alguna idea?

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re: Pure-ftpd add users???
« Respuesta #5 en: 28-01-2014, 13:42 (Martes) »
Si en lugar de crear un directorio, subes un fichero, tampoco te deja ?

miniyo88

  • Visitante
Re: Pure-ftpd add users???
« Respuesta #6 en: 28-01-2014, 14:22 (Martes) »
pues ya me deja supongo que era porque había creado la carpeta a mano en vez de que la creara automaticamente al loguearme

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re: Pure-ftpd add users???
« Respuesta #7 en: 28-01-2014, 14:42 (Martes) »
Pues si detallas el proceso ... igual le podría ser util para más gente  ;)

miniyo88

  • Visitante
Re:
« Respuesta #8 en: 28-01-2014, 20:19 (Martes) »
Eso había pensado a ver cuando acabe de pulir un tema con los permisos e las cuentas me pondré a ello

Enviado desde mi GT-I9000 mediante Tapatalk

miniyo88

  • Visitante
Re: Pure-ftpd add users???
« Respuesta #9 en: 02-02-2014, 04:08 (Domingo) »
siguiendo la guía de los enlaces de atrás, un problema que me he encontrado con los usuarios virtuales es que a todos les pone el mismo UID y GID, por lo tanto aunque añadas diferentes usuarios virtuales si comparten alguna carpeta todos puede borrar o modificar archivos aunque no sean los propietarios.

Código: [Seleccionar]
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
pure-pw useradd usuario1 -m -u ftpuser -d /ftp/usuario1
pure-pw useradd usuario2 -m -u ftpuser -d /ftp/usuario2

El árbol de carpetas sería así, las carpetas personales se crean automáticamente cuando inician sesión por primera vez los usuarios (comando -j al arrancar pureftpd):

Código: [Seleccionar]
/ftp
       /carpeta_publica (chmod 1777 1000:ftpgroup)
       / usuario1 (chmod 755  ftpuser:ftpgroup)
                /carpeta_privada (chmod 755  ftpuser:ftpgroup)
                /carpeta_publica (chmod 1777 1000:ftpgroup)
       /usuario2 (chmod 755  ftpuser:ftpgroup)
               /carpeta_privada (chmod 755  ftpuser:ftpgroup)
               /carpeta_publica (chmod 1777 1000:ftpgroup)

los usuarios no pueden salir más atrás de su directorio personal (chroot) por lo tanto monto la carpeta pública en las carpetas publicas de los usuarios

Código: [Seleccionar]
mount --bind /ftp/carpeta_publica /ftp/usuario1/carpeta_publica
mount --bind /ftp/carpeta_publica /ftp/usuario2/carpeta_publica


todos pueden compartir en la carpeta pública pero lo que pasa es que pueden borrar archivos que no sean suyos.
Al principio modifiqué el uid de cada usuario virtual pero no se lo tragó y al final los añadí al sistema (passwd)

Código: [Seleccionar]
useradd -g ftpgroup -d /dev/null -s /etc ftpusuario1
useradd -g ftpgroup -d /dev/null -s /etc ftpusuario2

y luego crear un usuario virual para cada uno

Código: [Seleccionar]
pure-pw useradd usuario1 -m -u ftpusuario1 -d /ftp/usuario1
pure-pw useradd usuario2 -m -u ftpusuario2 -d /ftp/usuario2

Quedando así los directorios:
 
Código: [Seleccionar]
/ftp
       /carpeta_publica (chmod 1777 1000:ftpgroup)
       / usuario1 (chmod 755  ftpusuario1:ftpgroup)
                /carpeta_privada (chmod 755  ftpusuario1:ftpgroup)
                /carpeta_publica (chmod 1777 1000:ftpgroup)
       /usuario2 (chmod 755  ftpusuario2:ftpgroup)
               /carpeta_privada (chmod 755  ftpusuario2:ftpgroup)
               /carpeta_publica (chmod 1777 1000:ftpgroup)