Arch equivalente ao Debian `dpkg-divert`

Arch equivalente ao Debian `dpkg-divert`

Estou tentando configurar o Skype no Arch Linux para usar umusuário em caixa de areianão importa qual usuário chama skype, mas eu particularmente não gosto do uso de um alias BASH para iniciar o Skype, conforme sugerido pelo wiki, pois, pelo que posso dizer, se um usuário não está usando BASH ou invoca o Skype do skype.desktopusuário em sand box não será usado. Achei que seria melhor desviar /usr/bin/skypepara ligar

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

onde skype.realestá o binário real do Skype. Tenho certeza que no Debian eu poderia fazer isso com

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

e, em seguida, adicione meu próprio arquivo ao /usr/sbin/skype. Como faço isso com o Arch?

Responder1

Se, como sugeri nos comentários, o skype-restrictedpacote AUR não for adequado para você (e observe que não conheço a abordagem que eles usam), posso pensar em duas abordagens:

(Leia até o final para saber a forma correta de aplicá-los no Arch)

Mude skypepara um script que execute seu Skype real

Crie um script bash que chamará seu Skype real:

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

Dê-lhe permissões de execução e salve-o como /usr/bin/skype, renomeando o antigo binário do Skype para /usr/bin/skype.real.

Essa abordagem leva a algumas coisas que precisam ser consideradas:

  • Se você realmente deseja que ninguém ligue para o Skype (o verdadeiro) além do skypeusuário, você precisa conceder ao arquivo as permissões apropriadas:

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

    Isso evitará que qualquer pessoa, exceto seu proprietário, o execute

  • Para permitir que qualquer pessoa execute skype(o novo com script), você precisa editar o arquivo sudoers (usando visudo) para que qualquer pessoa (de preferência em um grupo, possivelmente group skype) possa chamá-lo como user skype. Não sei os detalhes, só sei que isso pode ser feito.

Mude skypeo proprietário e defina o setuidbit

Nota: Esta não é a forma recomendada, pois os executáveis ​​setuid devem ser definidos no mínimo

Essa possibilidade pode ser mais limpa: definir o setuidbit para que qualquer pessoa que ligue skypeo chame como usuário skype.

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

Isso tornará o skypecomando disponível como sempre, mas sempre será executado como skypeusuário.


Em qualquer um dos casos acima, sempre que você atualizar o Skype para uma versão mais recente, precisará repetir o processo, pois pacmansubstituirá o binário.

A solução é criar um PKGBUILDque baixe o pacote oficial, extraia-o e faça as alterações desejadas. Em seguida, você o instala manualmente (como faria com qualquer pacote AUR). Você precisará reconstruí-lo manualmente sempre que precisar atualizar. O Skype não é atualizado com tanta frequência.

Para esta última tarefa, owiki oficial sobre PKGBUILDssão um ótimo recurso.

informação relacionada