Limite el acceso del programa (Viber para Linux) solo a cierto directorio

Limite el acceso del programa (Viber para Linux) solo a cierto directorio

¿Es posible limitar el acceso de los programas sólo a cierto directorio, por ejemplo, para ejecutar?viberen Fedora y forzarlo a que solo pueda leer en /home/username/.local/share/viber/exchangey ningún otro directorio?

He logrado crear y ejecutarvibercomo otro user:group( viber:viber). Cuando intento abrir desde dentro archivos de Viber que me pertenecen a mí o a cualquier otro usuario, no puede leerlos. Objetivo conseguido pero en parte. Ahora me topé con otro problema, que esvibersolo funciona con mensajes y cuando intento hacer una llamada dice que no encuentra ni micrófono ni parlantes? Siento que sé por qué (ejecuto X Server (GNOME) como yo yvibercomo viber:viber( user:group) ) pero no estoy seguro de cómo dejarlovibración¿El usuario puede usar el micrófono y los parlantes mientras ejecuta el servidor X con mi nombre?

¿Quizás necesito agregar viberun usuario a un grupo determinado? ¿Probablemente existen algunas soluciones con SELinux? Si es así, ¿podría proporcionar un ejemplo de política adecuado? :D

viberParece genial, pero no es de código abierto y sólo Dios sabe qué hay en el código fuente de ese software precompilado.

Respuesta1

Usandochroot

Crea un pequeñodirectorio raízque contiene /bin,,, etc. (dependiendo de su necesidad), copie todas sus cosas en este/usr/lib/tmpnueva raíz, luego ejecutar chrooten este directorio.

chrootEl comando es una herramienta Un*x muy antigua, construida exactamente con este significado.

Tú podríasunirdirectorio enenvasemediante el uso mount --bind.

Echa un vistazo a man chrooty man mount!

Pequeño intento:

ldd /bin/bash 
    linux-vdso.so.1 =>  (0x00007fff3e4b5000)
    libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f06290a1000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f0628e9d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0628b12000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f06292e8000)


sudo -s

¡Atención, desde ahí!

mkdir /tmp/test/chrooted/lib64
cp -t /tmp/test/chrooted/lib/x86_64-linux-gnu/ \
    /lib/x86_64-linux-gnu/{libc.so.6,libdl.so.2,libtinfo.so.5}
cp -t /tmp/test/chrooted/lib64 /lib64/ld-linux-x86-64.so.2 
chroot /tmp/test/chrooted

¡Estoy encarcelado!

ls
bash: ls: command not found

¡No hay ningún lscomando en /bin!

Usando openvzolxc

Siguiente paso envirtualización ligeraes ejecutar uno de openvzo lxc(u otro, tal vez).

Estas herramientas hacen aprox. igual que chroot, pero usoespacio de nombres del kernel aislado. Esto le permite simular interfaces de red u otros dispositivos y algunas limitaciones en torno a la memoria, la CPU y otros recursos...

Con este tipo devirtualización ligera, puede compartir directorios de la misma manera que usando chroot, usando mount --bind(o openvzquizás usando mount -t simfspodría ser útil).

Fuerte virtualización

A continuación puede utilizar kvm, xenu otro software de virtualización propietario...

Pero a partir de ahí, compartir directorios implica algún tipo de(pseudo) servicio de red...

información relacionada