Cómo restringir a un usuario a una carpeta y no permitirle mover su carpeta


28

Tengo un servidor ubuntu en digitalocean y quiero darle a alguien una carpeta para su dominio en mi servidor, mi problema es que no quiero que ese usuario vea mis carpetas o archivos o pueda mover su carpeta.

¿Cómo puedo restringir a este usuario en su carpeta y no permitirle que se mueva y vea otros archivos / directorios?


Es posible que desee utilizar cuentas de usuario separadas para ese fin.
Martin von Wittich

O tal vez Jailkit
FloHimself

chmod no es una buena solución porque no puedo usarlo para toda la carpeta en mi servidor que usé antes de que él pueda mover su carpeta
badr

en realidad no tengo idea sobre el grupo porque no lo usé antes, ¿podría explicarme cuál es el beneficio?
badr

Respuestas:


26

Resolví mi problema de esta manera:

Crea un nuevo grupo

$ sudo addgroup exchangefiles

Crea el directorio chroot

$ sudo mkdir /var/www/GroupFolder/
$ sudo chmod g+rx /var/www/GroupFolder/

Crear el directorio de escritura grupal

$ sudo mkdir -p /var/www/GroupFolder/files/
$ sudo chmod g+rwx /var/www/GroupFolder/files/

Dales ambos al nuevo grupo

$ sudo chgrp -R exchangefiles /var/www/GroupFolder/

después de eso fui /etc/ssh/sshd_configy agregué al final del archivo:

Match Group exchangefiles
  # Force the connection to use SFTP and chroot to the required directory.
  ForceCommand internal-sftp
  ChrootDirectory /var/www/GroupFolder/
  # Disable tunneling, authentication agent, TCP and X11 forwarding.
  PermitTunnel no
  AllowAgentForwarding no
  AllowTcpForwarding no
  X11Forwarding no

Ahora voy a agregar un nuevo usuario con el nombre de Obama a mi grupo:

$ sudo adduser --ingroup exchangefiles obama

Ahora todo está hecho, por lo que debemos reiniciar el servicio ssh:

$ sudo service ssh restart

aviso: el usuario ahora no puede hacer nada fuera del filedirectorio. Quiero decir que todo su archivo debe estar en la carpeta de archivos.


1
Cambié los usuarios como sudo su - obamay todavía puedo ver los archivos de otros @badr
Alper

11

Las restricciones son un tema sensible y debe definirse de manera consistente. Lo que puede hacer es definir un shell restringido para el usuario como su shell predeterminado .

Por ejemplo, establecer /bin/rksh(un kornshell restringido) en lugar del shell predefinido del usuario como el shell predeterminado para ese usuario en /etc/profile.

NOTA: si el ejecutable con este nombre no existe en su sistema, cree un enlace rígido ln /bin/ksh /bin/rkshy kshdeterminará por su nombre si está restringido o no.

El shell restringido será (por ejemplo) impedir haciendo un cdcomando, o especificando un comando con un /(una ruta explícita) en la invocación, y no permite el cambio de la PATH, SHELLo ENVvariables, y también están prohibidos redirecciones de salida.

Todavía puede proporcionar scripts de shell predefinidos para el usuario que (¡bajo el control de los implementadores de scripts!) Permitirán al usuario ejecutar esos scripts específicos en un entorno sin restricciones.


Esta respuesta va a ser mucho más simple que configurar un entorno chroot, así que lo he votado.
Azhrei

5

El comando le chrootpermite crear una raíz restringida para un usuario, esta pregunta explica el concepto chrooty cómo usarlo.

Actualización: la búsqueda de la cárcel chroot configurada en el océano digital , trae más documentación específica de su entorno. Aquí hay un par que creo que están relacionados con lo que pueda necesitar.

Cómo configurar entornos Chroot para pruebas en un Ubuntu 12.04 VPS

Cómo permitir el acceso restringido de SSH al usuario encarcelado de chroot

Aquí hay uno relacionado con jailkit , que FloHelfelf sugirió.


sí, lo explicaron, pero no explicaron cómo usarlo, lo intenté con algunos elogios, pero eso es lo que obtengo: chroot: no se pudo ejecutar el comando '/ bin / bash': No
existe

1
Es cierto, pero ahora que ha oído hablar de la cárcel de Chroot, podría investigar más, he actualizado la respuesta con algunos enlaces a documentos en Digital Ocean, que dan más explicaciones adaptadas a su entorno.
X Tian
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.