PulseAudio 這組套件,提供幾種簡單的認證程序,可避免未經允許的聲音轉送。在 Fedora 中的相關設定說明如下:
一、設定認證的相關模組、設定檔
PulseAudio 中與設定認證有相關的模組,有這四個:module-esound-protocol-unix後兩個的設定過程比較簡單,所以待會的設定步驟以這兩個模組為主。
module-native-protocol-unix
module-esound-protocol-tcp
module-native-protocol-tcp
設定認證的檔案有兩個:
認證密鑰檔有兩個,
/etc/pulse/default.pa : 系統層級的設定檔,通常安裝 PulseAudio 時,就已設定妥當。維持預設內容、不需修改。 ~/.pulse/default.pa : 使用者級的設定檔,要額外設定模組時,再修改。否則維持原狀。(某些系統預設無此檔案)
~/.esd_auth : 供 module-esound-protocol-{unix, tcp} 連線認證用 ~/.pulse-cookie : 供 module-native-protocol-{unix, tcp} 連線認證用
二、方法(一):使用「網路位址」認證
在「受音端」電腦中,編輯 "~/.pulse/default.pa " 這個檔案,此檔案位為使用者的「家目錄」(~/)中的一隱藏目錄(.pulse)之下,以 gedit 為例,[SiB@Celeron-D ~]$ gedit ~/.pulse/default.pa鍵入如下三列命令:
.include /etc/pulse/default.pa其中,第一列命令是引入「系統層級的設定檔」,建立預設音效系統。第二、三列是限制開放「本地電腦」(網路位址:127.0.0.1)及「子網」(子網段:192.168.10.1 ~ 192.168.10.254)。兩個網路以上時,以「 ; 」間隔之。
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.10.0/24
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.10.0/24
將設定檔儲存,再下命令重啟 PulseAudio 服務即可,
[SiB@Celeron-D ~]$ pulseaudio --kill
[SiB@Celeron-D ~]$ pulseaudio --start
註一:這些操作、設定皆在「受音端」電腦,在本機使用者的帳號下進行。「音源端」的設定參考之前的發文。
註二:若要限制單一「遠端電腦」時,則網路位址要完整指定,例:192.168.10.17/32。
三、方法(二):使用「認證密鑰」認證
將「受音端」的使用者「家目錄」下的認證檔:".esd_auth" 及 ".pulse-cookie" 複製到「音源端」的使用者「家目錄」下。接著,再下命令重啟「音源端」的 PulseAudio 服務即可,[SiB@Core-i7 ~]$ pulseaudio --kill
[SiB@Core-i7 ~]$ pulseaudio --start
註:這些操作、設定皆在「音源端」電腦,在本機使用者的帳號下進行。「受音端」的設定參考之前的發文。
四、兩種「認證機制」的比較
「網路位址」 | 優點:設定兩台電腦間的聲音轉送,設定簡單、直接。 缺點:當「音源端」有多位使用者時,無法分別設定使用權限。 |
---|---|
「認證密鑰」 | 優點:可設定至「個別」使用者的使用權限。 缺點:同一「音源端」電腦的多位使用者,都可使用時較麻煩。 |
注意:同時設定兩種認證時,請小心認證重疊的設定。即:「網路位址」認證的範圍較「認證密鑰」認證寬鬆。
五、使用經驗分享
以筆者的使用經驗,使用「認證密鑰」的在同一部「音源端」有多個「使用者」,而欲將聲音轉送至不同「使用者」所在的電腦時,其適用性較用「網路位址」來得方便。已測試版本:
- Fedora: (14 => 14), (17 → 14)
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)