我正在嘗試在 Arch Linux 上配置 Skype 以使用沙盒用戶無論哪個用戶調用skype
,但我不太喜歡按照 wiki 的建議使用 BASH 別名來啟動 Skype,因為據我所知,用戶是否未使用 BASH 或從skype.desktop
沙盒用戶調用 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-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 更新沒那麼頻繁。
對於這最後一項任務,關於 PKGBUILD 的官方 wiki是一個很好的資源。