
Estoy creando un nuevo usuario con los siguientes detalles:
useradd -d /var/www/html/testuser.com -G users testuser
Procedo creando una nueva contraseña para el usuario e intento iniciar sesión a través de SSH, llego a /var/www/html/testuser.com pero aún puedo volver a los directorios. Quiero restringir los permisos de los usuarios para que solo puedan administrar el contenido dentro de testuser.com y sus hermanos (para que puedan realizar todas las operaciones normales), no quiero que el usuario pueda navegar hacia atrás en los directorios y tener efectivamente la raíz. acceso.
Respuesta1
Los usuarios no “tienen efectivamente acceso de root” sólo porque pueden explorar otros directorios. Todos los usuarios con acceso shell pueden explorar la instalación del software; después de todo, esta no es información confidencial, ya que se puede descargar desde cualquier número de sitios. Si hay directorios que no desea exponer a todos los usuarios del shell, proporcióneles los permisos restrictivos adecuados.
Si desea tener una segunda capa de seguridad, puede restringir las cuentas. Si solo desea permitir que estos usuarios exploren, carguen y descarguen archivos en /var/www/html/testuser.com
, entonces no les dé una cuenta shell, déles una cuenta restringida que solo pueda usar SFTP. Puede especificar opciones para una cuenta específica ensshd_config
con un Match
bloque. (Ponga esto al final del archivo, ya que la Match
directiva se extiende a la siguiente Match
directiva o al final del archivo).
Match User testuser
Force-command internal-sftp
ChrootDirectory /var/www/html/testuser.com
Si desea permitir que los usuarios utilicen algunos comandos más, como scp y rsync, pero no acceso general al shell, utilicersshosolocomo shell en su cuenta e instale y configure rssh o scponly para especificar qué comandos desea permitir (consulte¿Necesitas un caparazón para SCP?).
Si desea proporcionar una cuenta de shell que solo permita ejecutar algunos programas incluidos en la lista blanca, convierta su shell en unacaparazón restringido. Tenga en cuenta que estos usuarios podrán acceder a archivos fuera de su directorio de inicio, según los permisos de archivo.
Si desea otorgar acceso completo al shell, pero hacer que todo lo que no sea los directorios personales sea invisible, entonces necesita crear algún tipo decelda. La forma más débil de cárcel es unacárcel chroot, que restringe al usuario a una rama del árbol de directorios. Restringir a un usuario a un chroot es tan fácil como especificarlo ChrootDirectory
en sshd_config
; sin embargo, dado que el usuario no puede salir de la cárcel, el directorio debe contener todos los programas que utilizará el usuario y sus datos. Puedes usarunir montajespara hacer que algunos directorios (por ejemplo /usr
) sean visibles dentro de la cárcel.
Respuesta2
Échale un vistazo man 5 sshd_config
a la opción ChrootDirectory
.
Respuesta3
Puede cambiar los permisos /var/www/html
para que solo el root pueda ver/modificar los archivos/carpetas.
Como:
chown root:root /var/www/html