Al instalar aplicaciones a través del centro de software o mediante un archivo DEB, generalmente se instalarán en todo el sistema para todos los usuarios.
¿Hay alguna manera de instalar una aplicación solo para un usuario?
Al instalar aplicaciones a través del centro de software o mediante un archivo DEB, generalmente se instalarán en todo el sistema para todos los usuarios.
¿Hay alguna manera de instalar una aplicación solo para un usuario?
Dependiendo de lo que desee lograr, puede haber diferentes formas de hacer que esto funcione (o al menos dar una apariencia de la funcionalidad que desea).
La instalación de software de muchas maneras se reduce a hacer que los recursos estén disponibles o permitir el acceso a cosas que ya están presentes en el sistema.
Ya sea que esté hablando de otorgar acceso a impresoras o permitir que un usuario ejecute programas en un determinado directorio, hay formas de lograr esto, y aunque pueden ser nativos de Ubuntu, este tipo de soluciones generalmente (por supuesto) van a se agregará después del hecho de una instalación .deb.
Aquí hay dos clases generales de control posterior a la instalación que se pueden agregar. Tenga en cuenta que, dado el entorno adecuado, por ejemplo, cuando existe una política de grupo estrictamente controlada, esto podría ser más fácil una vez que tenga el sistema básico. Este tipo de permiso incluso puede estar vinculado a LDAP o un sistema similar que puede proporcionar autenticación y autorización por usuario o grupo.
Control de visibilidad
He tenido una situación algo similar, pero en mi caso, los usuarios no eran (todavía) muy sofisticados (todos tenían menos de 7 años). Para mí, simplemente ocultar menús de Gnome y / o eliminar lanzadores de escritorio funcionó.
Eliminar el bit ejecutable de los directorios elimina la capacidad de los procesos para buscarlos o recorrerlos. Efectivamente puede hacerlos invisibles, y en cuanto al usuario, hacerlos no disponibles. Si tiene una política de sistema predeterminada que crea menús basados en el acceso a archivos, por ejemplo, puede obtener este tipo de solución cosmética y luego hacer que funcione para instalaciones posteriores con poco esfuerzo adicional.
Control de ejecución El control del recurso se puede realizar a través de los permisos de Unix, los perfiles de apparmor, los permisos de SELinux, etc. Puede haber otros niveles de filtrado de control que pueden entrar en juego dependiendo de la aplicación. En ausencia de soluciones más específicas, es posible que tenga que escribir contenedores alrededor de ciertos programas para controlar el acceso de usuarios o procesos.
Bueno
dpkg
, no te ayudará, ya que este no es su objetivo de diseño. Quiere ser un censo exclusivo de paquetes instalados en un sistema.Lo único que me viene a la mente es extraer el paquete e intentar colocar los archivos manualmente en el directorio de inicio.
Sin embargo, esto solo funcionará para algunas cosas. Muchos paquetes se dividen en fragmentos (ejecutables o scripts en
/usr/bin
, bibliotecas en/lib
y otro atuendo/usr/share
, etc.) y estas ubicaciones están codificadas por los scripts de compilación. Por lo tanto, si intentas introducir algo como esto~
, se romperá. Podrías pasar horas relajando las dependencias, pero podrías estar haciendo algo útil con tu tiempo, como encontrar la cura para el cáncer o absorber algo de la belleza del mundo.Sería mucho mejor simplemente obtener una versión no empaquetada de quien escriba el software. Casi todo el software gratuito está disponible en alguna forma de archivo comprimido como fuente, así que agárralo y solo compílalo. No haces el
make install
paso. Su aplicación está construida, simplemente colóquela donde desee.fuente
/etc/init
, busca archivos de configuración/etc
o tiene algunas otras rutas codificadas../configure --prefix=$HOME/local
.No sé demasiado acerca de este tema, pero parece de las otras respuestas que usted puede ser capaz de instalar un paquete a otro directorio en lugar de
/
condpkg
, utilizando el--root
parámetro, y luego hacer unachroot
a la dir el que el paquete era " instalado "en (que por supuesto puede ser un directorio en el directorio de inicio del usuario).Para instalar un paquete para un usuario que no sea
root
, podría ser posible utilizar el proceso anterior con enfakechroot
lugar dechroot
.Exención de responsabilidad : No intente esto, y no tienen mucha experiencia en el momento de escribir con
dpkg
ochroot
, pero de lo que no sé acerca de estas herramientas, este proceso solo puede trabajar.Enlaces que tienen información que puede ser útil para personas que desean lograr el efecto
chroot
sinroot
capacidades:chroot
fakechroot
)Actualizar
Ahora he hecho un poco con las cosas que tocan este tema, y descubrí algo más ...
Fragmentos (bloques de construcción del entorno local):
chroot(1)
Completo (proveedores de entorno local completo):
chroot(1)
,mount --bind
,binfmt_misc
, y funcionando binarios de otras arquitecturas usando qemu-espacio de usuarioResumen : al emular o tener privilegios de root localmente, se pueden instalar paquetes DEB para un entorno local.
fuente
Probablemente pueda usar la
--root
opción dedpkg
instalar en otro directorio. Pero probablemente tenga problemas si la aplicación busca cosas en lugares fijos como/etc
.En resumen, no creo que haya una manera fácil.
fuente
Puede cambiar la propiedad del archivo ejecutable para que solo un usuario pueda ejecutarlo. Luego, si es necesario, puede eliminar la aplicación de los menús de otros usuarios.
fuente
~/bin
. Hay una ambigüedad en esta pregunta sobre si Takkat quiere restringir el acceso / visibilidad de una aplicación multiusuario, o si desea instalar una aplicación para un solo usuario. Sus preguntas y arreglos usan la primera interpretación, y el resto asume la segunda.Dudoso.
Los deb son principalmente archivos que se extraen a la raíz de su sistema de archivos cuando se instalan (más algunas configuraciones). Si desea instalarlos solo para un usuario, necesitaría instalarlos de alguna manera en la carpeta / home / user. Incluso si lo hiciera, no funcionarían, ya que los binarios de la aplicación fe no aterrizarán en / usr / bin (o algo similar), y el sistema no los encontrará si intenta iniciarlos. Del mismo modo, las bibliotecas, etc. serían inútiles, ya que el sistema no sabría que hay algún lugar en / home. Puede probar el enfoque de fuerza bruta y ajustar la variable PATH para que apunte a donde extrajo los archivos del archivo deb, pero eso no solo sería MUY inseguro, pero puede causar problemas de compatibilidad (las entradas del menú de fe no funcionarían, ya que GNOME extiende los archivos .desktop para que estén en / usr / share / aplicaciones).
Además, si instaló un paquete solo para algunos usuarios, podría causar problemas de dependencia locos, si cualquier otro paquete instalado por el usuario entra en conflicto con otro que haya instalado solo para usted, y posiblemente aparezcan toneladas de otros problemas relacionados con la administración de paquetes.
Todos estos problemas hacen que sea extremadamente difícil administrar paquetes por separado para los usuarios, por lo que parece que no es posible instalarlos solo para un usuario, porque la idea detrás de .debs no lo permite.
fuente