Equivalente en arco de Debian `dpkg-divert`

Equivalente en arco de Debian `dpkg-divert`

Estoy intentando configurar Skype en Arch Linux para usar unusuario en caja de arenano importa qué usuario llame skype, pero no me gusta particularmente el uso de un alias BASH para iniciar Skype como lo sugiere la wiki ya que, hasta donde puedo decir, si un usuario no está usando BASH o invoca Skype desde skype.desktop, el usuario aislado no será utilizado. Pensé que sería mejor desviar /usr/bin/skypepara llamar

sudo -u skype /usr/bin/skype.real

¿Dónde skype.realestá el binario real de Skype? Estoy bastante seguro de que en Debian podría hacer esto con

dpkg-divert --package skype --add --rename --divert /usr/sbin/skype.real /usr/sbin/skype

y luego agregar mi propio archivo a /usr/sbin/skype. ¿Cómo hago esto con Arch?

Respuesta1

Si, como sugerí en los comentarios, el skype-restrictedpaquete AUR no es adecuado para usted (y tenga en cuenta que no sé el enfoque que utilizan), puedo pensar en dos enfoques:

(Lea hasta el final para conocer la forma correcta de aplicarlos en Arch)

Cambie skypea un script que ejecute su Skype real

Crea un script bash que llamará a tu Skype real:

#!/bin/sh
sudo -u skype /usr/bin/skype.real

Dale permisos de ejecución y guárdalo como /usr/bin/skype, cambiando el nombre del antiguo binario de Skype a /usr/bin/skype.real.

Sin embargo, este enfoque conlleva algunas cosas que deben tenerse en cuenta:

  • Si realmente no desea que nadie llame a Skype (el real) además del skypeusuario, debe otorgarle al archivo los permisos adecuados:

    chown skype /usr/bin/skype.real
    chmod 0100 /usr/bin/skype.real
    

    Esto evitará que nadie más que su propietario lo ejecute.

  • Para permitir que cualquiera ejecute skype(el nuevo, con script), debe editar el archivo sudoers (usando visudo) para que cualquiera (preferiblemente en un grupo, posiblemente group skype) pueda llamarlo como usuario skype. No conozco los detalles, solo sé que se puede hacer.

Cambiar skypepropietario y configurar el setuidbit

Nota: Esta no es la forma recomendada, ya que los ejecutables setuid deben establecerse al mínimo

Esta podría ser una posibilidad más clara: configurar el setuidbit para que cualquiera que llame skypelo llame como usuario skype.

chown skype /usr/bin/skype
chmod u+s /usr/bin/skype

Esto hará que el skypecomando esté disponible como siempre, pero siempre se ejecutará como el skypeusuario.


En cualquiera de los casos anteriores, cada vez que actualice Skype a una versión más nueva, deberá repetir el proceso, ya que pacmanreemplazará el binario.

La solución es crear una PKGBUILDque descargue el paquete oficial, lo extraiga y realice los cambios deseados. Luego lo instala manualmente (como instalaría cualquier paquete AUR). Deberá reconstruirlo manualmente cada vez que necesite actualizar. Sin embargo, Skype no se actualiza con tanta frecuencia.

Para esta última tarea, elwiki oficial sobre PKGBUILDson un gran recurso.

información relacionada