Debian `dpkg-divert` と同等の機能

Debian `dpkg-divert` と同等の機能

Arch LinuxでSkypeを使用するように設定しようとしています。サンドボックスユーザーどのユーザーが呼び出すかは重要ではありませんが、skypeWikiが提案したようにBASHエイリアスを使用してSkypeを起動するのはあまり好きではありません。なぜなら、私が知っている限り、skype.desktopユーザーがBASHを使用していない場合、または電話をかけない限り、使用されないからです。サンドボックスユーザーのSkype。/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-restrictedAURパッケージが機能しない場合(それらがどのように使用されているのかわからないことに注意してください)、2つのアプローチを考えてみましょう。

(アーチに適用する正しい方法を学ぶために最後まで読んでください)

skype実際のSkypeを実行するようにスクリプトを変更してください。

実際のSkypeに電話するためのbashスクリプトを作成します。

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

実行権限を付与し、として保存し、古い/usr/bin/skypeSkypeバイナリの名前を/usr/bin/skype.real

しかし、このアプローチには考慮すべきいくつかの問題があります。

  • ユーザー以外の場合、Skypeに電話をかけないようにするには、ファイルにskype適切な権限を付与する必要があります。

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

    これにより、所有者以外の人が実行するのを防ぐことができます。

  • 誰でも(新しい、スクリプトとして)実行するには、誰でも(可能であればグループ内で、おそらくグループ)userと呼ぶようにskypesudoersファイルを編集する必要があります(を使用して)。詳細はわかりませんが、できることだけを知っています。visudoskypeskype

所有者の変更skypesetuidビットの設定

注:setuid実行可能ファイルを最小に設定する必要があるため、これは推奨されるアプローチではありません。

setuidそのビットを呼び出す人をskypeuserと呼ぶように設定する方がきちんとできますskype

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

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


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

解決策は、PKGBUILD公式パッケージをダウンロードし、解凍し、必要な変更を行うプログラムを作成することです。その後、AURパッケージと同様に手動でインストールします。更新が必要なときはいつでも手動で再構築する必要があります。しかし、Skypeのアップデートはそれほど頻繁には発生しません。

この最後の仕事のためにPKGBUILDの公式wiki素晴らしいリソースです。

おすすめ記事