Cómo crear un usuario SFTP (SSH) con permisos extremadamente limitados

8

ejecuto un servidor en Ubuntu Server 14.04. Quiero crear un usuario que pueda conectarse a través de sftp, descargar 1 archivo y finalizar la conexión. El usuario no debería poder hacer NADA más. Navegación por archivos o configuraciones del sistema ni entradas de línea de comando, nada. Inicie sesión, descargue el archivo, gg. Cuando el archivo se actualice, inicie sesión, descárguelo, gg. El archivo está en el mismo directorio cada vez y tiene el mismo nombre cada vez, pero se actualiza.

EDITAR: Estoy tratando de implementar su solución, pero he encontrado algunos problemas: en el archivo de configuración de ssh en mi configuración hay una línea con "permitir grupos sshdusers". He agregado sftp_users. Pero hay otro problema por delante. sudo chown root.root / ubuntu / no es óptimo para mí porque root no puede ssh y escribir en el directorio el archivo que "ubuntu" tiene que descargar (lo llamaremos usuario1. Quiero que el usuario1 pueda escribir en el directorio y ubuntu son de solo lectura. Si cambio sudo chown user1.user1 / ubuntu / e intento hacer sftp con el usuario ubuntu, la conexión falla. Si dejo la raíz como lo hago, puedo conectarme pero no puedo ver el directorio actual solo veo / y empy en filezilla. Incluso agregué user1 a sftp_users, pero aún no tuve éxito.

Muchas gracias

BlueStarry
fuente

Respuestas:

11

Empecemos

Crear usuario ubuntu

sudo useradd ubuntu

Hacer contraseña

sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

Crear solo para grupo SFTP

xxx@xxx:~$ sudo groupadd sftp_users 

Agregar a un usuario "ubuntu" para el grupo solo de SFTP

xxx@xxx:~$ sudo usermod -G sftp_users ubuntu 

Hacer dir para sftpacceso

sudo mkdir /ubuntu

Cambiar propietario, porque permiso de lectura / escritura

sudo chown root.root /ubuntu/

Agregar permiso

sudo chmod 755 /ubuntu/

Editar /etc/ssh/sshd_config

sudo nano /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 /ubuntu
  ForceCommand internal-sftp

Reiniciar el sshservicio

sudo service ssh restart

Con esta configuración, puede ingresar a la carpeta ubuntuy obtener archivos. No puede putodelete

Tratar.

Editar 1

Para sftp en la carpeta derecha editar /etc/passwd. Cambiar la línea para que el usuario se ubuntuvea así

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

Esto cambiará la carpeta de inicio del usuario ubuntu a la carpeta del servidor sftp.

Habilitar rootcuenta no es buena idea.

Puede ssh al servidor con user1.

Si se agrega el usuario user1en sudoer groupusted será capaz de escribir en la carpeta /ubuntu/y permisos apropiados

sudo adduser user1 sudo

Hacer carpeta, escribir en carpeta ubuntu. Después de las acciones, debe establecer el permiso para el usuario ubuntu. La forma más fácil es agai establecer permiso a 755

sudo chmod 755 -R /ubuntu/

-R: la opción dará permiso de lectura de todos los archivos y directorios para el usuario ubuntu

2707974
fuente
Muchas gracias a ti. Vea mi edición para más, ya que los comentarios son muy ajustados.
BlueStarry
1
Tienes Editar 1 en mi respuesta.
2707974
Lamento decir que no funciona. Con filezilla sftp no puedo escribir en la carpeta con user1 ni ubuntu. iniciar sesión con ubuntu a través de sftp me da la carpeta / a pesar de las últimas modificaciones. Lo he intentado varias veces y no puedo resolver el problema.
BlueStarry
También creo que 755 no es bueno para este propósito porque el propietario es root y los sudoers no pueden escribir en la carpeta con 755
BlueStarry
Ya en 2015, estoy seguro de que estaba usando Ubuntu addusery addgroup, en lugar de useradd, groupadd, etc. El sudo chown root.root /ubuntu/es simplemente incorrecto. Usted creó el directorio utilizando sudo, por lo que la propiedad ya es root. Debería usarlo ubuntu.sftp_users. Finalmente, si inicialmente lo creó como propiedad ubuntu, todo, desde " Habilitando usuario root ..." es superfluo.
Auspex