%20solo%20a%20cierto%20directorio.png)
¿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/exchange
y 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 viber
un 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
/tmp
nueva raíz, luego ejecutar chroot
en este directorio.
chroot
El 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 chroot
y 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 ls
comando en /bin
!
Usando openvz
olxc
Siguiente paso envirtualización ligeraes ejecutar uno de openvz
o 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 openvz
quizás usando mount -t simfs
podría ser útil).
Fuerte virtualización
A continuación puede utilizar kvm
, xen
u otro software de virtualización propietario...
Pero a partir de ahí, compartir directorios implica algún tipo de(pseudo) servicio de red...