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 chroot
comando 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, chroot
digamos, usuario foo
usuario 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 foo
con contraseña
sudo useradd foo
sudo passwd foo
Crear grupo solo para SFTP
$ sudo groupadd sftp_users
Agregar a un usuario foo
para 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: Match
los bloques deben estar en elFINdel sshd_config
archivo.)
Reiniciar ssh
servicio
sudo service ssh restart
Con esta configuración puedes ingresar a una carpeta mediante ssh ubuntu
y obtener archivos. no puedo put
odelete
Para sftp en la carpeta derecha editar /etc/passwd
. Cambie la línea para que el usuario foo
se vea así
$ sudo vi /etc/passwd
..
foo:x:1001:1001::/var/www/vhosts/:
..
Esto cambiará foo
la carpeta de inicio del usuario a la carpeta de su servidor SFTP.