Dav*_*ore 4 bash sudo text-to-speech pulseaudio sox
如果我获取一个 mp3 文件并尝试使用我的普通用户帐户使用 来收听它sox file.mp3 -d,它会完美地工作。但是,如果我在执行完之后尝试做同样的事情sudo su,则会产生:Home directory not accessible: Permission denied。
用例如下:
我的 .bashrc 在我的 root 帐户和普通用户帐户之间链接。我的 .bashrc 中的一个特定行使用google_speech(它利用了 sox,它似乎使用pulseaudio 作为默认值):
function sayhi() {
if [ "$EUID" -ne 0 ]; then
printf "Hi, $USER! Your directory is currently "${PWD}""
google_speech -l en "HELLO $USER!"
else
printf "Woah, we have a Superuser on our hands. Best be careful!"
google_speech -l en "WARNING: ROOT ACTIVATED"
fi
}
sayhi &
Run Code Online (Sandbox Code Playgroud)
这意味着如果我做了类似的事情,sudo su我最终应该让我的计算机与我对话。相反,我得到:
Home directory not accessible: Permission denied。
我该如何解决?
小智 10
为所有用户运行 PulseAudio 的解决方案
将以下行添加到/etc/systemd/system/pulseaudio.service文件并保存
[Unit]
Description=PulseAudio system server
[Service]
Type=notify
ExecStart=pulseaudio --daemonize=no --system --realtime --log-target=journal
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
启用服务
sudo systemctl --system enable pulseaudio.service
sudo systemctl --system start pulseaudio.service
sudo systemctl --system status pulseaudio.service
Run Code Online (Sandbox Code Playgroud)
编辑客户端conf /etc/pulse/client.conf并替换下面的屁股
default-server = /var/run/pulse/native
autospawn = no
Run Code Online (Sandbox Code Playgroud)
将根添加到脉冲组
sudo adduser root pulse-access
Run Code Online (Sandbox Code Playgroud)
最后重新启动系统