Permiso de solo lectura para el usuario sftp en un directorio específico

Permiso de solo lectura para el usuario sftp en un directorio específico

Quiero crear un usuario SFTP específico que tendrá permisos para leer solo todas las carpetas y subcarpetas del archivo /var/www/vhosts. ¿Alguna ayuda sobre esto?

Respuesta1

Los sistemas Unix proporcionan el chrootcomando que le permite restablecer el /usuario a algún directorio en la jerarquía del sistema de archivos, donde no puede acceder a archivos y directorios "superiores".

Sin embargo, en su caso, sería apropiado proporcionar un chroot virtual implementado por el servicio de shell remoto. sftp se puede configurar fácilmente para restringir a un usuario local a un subconjunto específico del sistema de archivos.

por lo tanto, en su caso, desea, chrootdigamos, usuario foousuario en el /var/www/vhosts/directorio.

Puede configurar un directorio chroot para que su usuario lo limite al subdirectorio /var/www/vhosts/como en /etc/ssh/sshd_config;

Crear usuario foocon contraseña

sudo useradd foo
sudo passwd foo

Crear grupo solo para SFTP

$ sudo groupadd sftp_users 

Agregar a un usuario foopara el grupo solo SFTP

$ sudo usermod -G sftp_users foo 

Cambiar propietario, porque tiene permiso de lectura/escritura.

sudo chown root.root /var/www/vhosts/

Agregar permiso

sudo chmod 755 /var/www/vhosts/

Editar/etc/ssh/sshd_config

sudo vi /etc/ssh/sshd_config

Comenta y agrega una línea como la siguiente

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Añadir al final

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /var/www/vhosts/
  ForceCommand internal-sftp

(NOTA: Matchlos bloques deben estar en elFINdel sshd_configarchivo.)

Reiniciar sshservicio

sudo service ssh restart

Con esta configuración puedes ingresar a una carpeta mediante ssh ubuntuy obtener archivos. no puedo putodelete

Para sftp en la carpeta derecha editar /etc/passwd. Cambie la línea para que el usuario foose vea así

$ sudo vi /etc/passwd

..
foo:x:1001:1001::/var/www/vhosts/:
..

Esto cambiará foola carpeta de inicio del usuario a la carpeta de su servidor SFTP.

información relacionada