Debian の `dpkg-divert` に相当する Arch

Debian の `dpkg-divert` に相当する Arch

Arch LinuxでSkypeを設定して、サンドボックス化されたユーザーどのユーザーが を呼び出すかは関係ありませんskypeが、Wiki で提案されているように、BASH エイリアスを使用して Skype を起動するのはあまり好きではありません。なぜなら、私の知る限り、ユーザーが BASH を使用していないか、 から Skype を呼び出すとskype.desktop、サンドボックス化されたユーザーは使用されないからです。/usr/bin/skypeを呼び出すように転送する方がよいのではないかと思いました。

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

Skypeのバイナリはどこにskype.realありますか。Debianでは、次のようにすればできると思います。

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

そして、自分のファイルを に追加します/usr/sbin/skype。Arch でこれを行うにはどうすればよいでしょうか?

答え1

コメントで示唆したように、skype-restrictedAUR パッケージが適していない場合 (また、彼らが使用するアプローチはわかりません)、次の 2 つのアプローチが考えられます。

(Arch での正しい適用方法については最後までお読みください)

skype実際のSkypeを実行するスクリプトに変更する

実際の Skype を呼び出す bash スクリプトを作成します。

#!/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) を編集して、誰でも (できればグループ内、おそらくグループskype) が user として呼び出せるようにする必要がありますskype。詳細はわかりませんが、実行可能であることだけはわかっています。

所有者を変更しskypesetuidビットを設定する

注: これは推奨される方法ではありません。setuid実行ファイルは最小限に設定する必要があります。

setuidこれは、呼び出す人が誰でもskypeユーザーとして呼び出すようにビットを設定することで、よりクリーンな可能性になる可能性がありますskype

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

これにより、コマンドは常に使用可能になりますskypeが、常にユーザーとして実行されますskype


上記のいずれの場合もSkype を新しいバージョンに更新するたびに、pacmanバイナリを置き換えるため、このプロセスを繰り返す必要があります。

解決策は、PKGBUILD公式パッケージをダウンロードし、それを解凍して、必要な変更を実行する を作成することです。その後、手動でインストールします (他の AUR パッケージをインストールする場合と同様)。更新が必要なときはいつでも、手動で再構築する必要があります。ただし、Skype はそれほど頻繁に更新されません。

この最後のタスクでは、PKGBUILD の公式 wiki素晴らしいリソースです。

関連情報