Я пытаюсь настроить 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
), чтобы любой (предпочтительно в группе, возможно, groupskype
) мог вызвать его как userskype
. Я не знаю подробностей, я просто знаю, что это можно сделать.
Сменить 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являются отличным ресурсом.