Эквивалент Debian `dpkg-divert` в Arch

Эквивалент Debian `dpkg-divert` в Arch

Я пытаюсь настроить Skype на Arch Linux для использованияизолированного пользователянезависимо от того, какой пользователь вызывает skype, но мне не особенно нравится использование псевдонима BASH для запуска Skype, как предлагается вики, поскольку, насколько я могу судить, если пользователь не использует BASH или вызывает Skype из skype.desktop, то изолированный пользователь не будет использоваться. Я подумал, что, возможно, лучше перенаправить /usr/bin/skypeна вызов

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

где skype.realнаходится фактический двоичный файл Skype. Я почти уверен, что в Debian я мог бы сделать это с помощью

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

а затем добавить свой собственный файл в /usr/sbin/skype. Как мне это сделать с помощью Arch?

решение1

Если, как я предположил в комментариях, skype-restrictedпакет AUR вам не подходит (и заметьте, я не знаю, какой подход они используют), я могу предложить два подхода:

(Прочитайте до конца, чтобы узнать правильный способ их применения в Arch)

Измените skypeскрипт на тот, который запускает ваш настоящий Skype

Создайте bash-скрипт, который будет вызывать ваш настоящий Skype:

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

Дайте ему права на выполнение и сохраните как /usr/bin/skype, переименовав старый двоичный файл Skype в /usr/bin/skype.real.

Однако такой подход приводит к нескольким вещам, которые необходимо учитывать:

  • Если вы действительно не хотите, чтобы кто-либо, кроме пользователя, звонил в Skype (настоящий) skype, вам необходимо предоставить файлу соответствующие разрешения:

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

    Это не позволит никому, кроме владельца, управлять им.

  • Чтобы разрешить запуск любому пользователю skype(новому, скриптовому), нужно отредактировать файл sudoers (используя visudo), чтобы любой (предпочтительно в группе, возможно, group skype) мог вызвать его как user skype. Я не знаю подробностей, я просто знаю, что это можно сделать.

Сменить skypeвладельца и установить setuidбит

Примечание: это не рекомендуемый способ, так как для исполняемых файлов setuid следует установить минимальное значение.

Это может быть более чистой возможностью, например, установкой setuidбита, чтобы любой вызывающий пользователь skypeназывал его пользователем skype.

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

Это сделает skypeкоманду доступной как всегда, но она всегда будет запускаться от имени skypeпользователя.


В любом из вышеперечисленных случаев, каждый раз при обновлении Skype до более новой версии вам придется повторять процесс, так как pacmanон заменит двоичный файл.

Решение состоит в том, чтобы создать PKGBUILDзагружающий официальный пакет, извлекающий его и выполняющий желаемые изменения. Затем вы устанавливаете его вручную (как вы бы установили любой пакет AUR). Вам нужно будет пересобрать его вручную каждый раз, когда вам нужно будет обновиться. Skype не обновляется так часто.

Для этой последней задачиофициальная вики на PKGBUILDsявляются отличным ресурсом.

Связанный контент