Quiero crear un usuario SFTP específico que tendrá permisos para leer solo todas las carpetas y subcarpetas /var/www/vhosts
. ¿Alguna ayuda en esto?
fuente
Quiero crear un usuario SFTP específico que tendrá permisos para leer solo todas las carpetas y subcarpetas /var/www/vhosts
. ¿Alguna ayuda en esto?
Los sistemas Unix proporcionan el chroot
comando que le permite restablecer el nombre /
del usuario a algún directorio en la jerarquía del sistema de archivos, donde no pueden 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, quiere chroot
decir, usuario foo
usuario en el /var/www/vhosts/
directorio.
Puede establecer un directorio chroot para que su usuario los confine al subdirectorio de esta /var/www/vhosts/
manera /etc/ssh/sshd_config
;
Crear usuario foo
con contraseña
sudo useradd foo
sudo passwd foo
Crear solo para grupo SFTP
$ sudo groupadd sftp_users
Agregar a un usuario foo
para un grupo solo de SFTP
$ sudo usermod -G sftp_users foo
Cambiar propietario, porque 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
Agregar al final
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /var/www/vhosts/
ForceCommand internal-sftp
(NOTA: los Match
bloques deben estar al final del sshd_config
archivo).
Reiniciar el ssh
servicio
sudo service ssh restart
Con esta configuración, puede ingresar a la carpeta ubuntu
y obtener archivos. No puede put
odelete
Para sftp en la carpeta derecha editar /etc/passwd
. Cambiar la línea para que el usuario se foo
vea así
$ sudo vi /etc/passwd
..
foo:x:1001:1001::/var/www/vhosts/:
..
Esto cambiará la foo
carpeta de inicio del usuario a la carpeta del servidor sftp.
Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no
In sshd_config y creé el usuario y el grupo como lo hiciste, pero el usuariofoo
tiene derechos para todas las carpetas :(Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /var/www/vhosts AllowTcpForwarding no ForceCommand internal-sftp
pero hay un error cuando quiero reiniciar ssh/etc/ssh/sshd_config line 92: Directive 'UsePAM' is not allowed within a Match block
Match.....
sección al final del archivo. Pon ese código al final del archivo y reinícialo.