我的脚本是这样的:
#!/bin/bash
sudo teamviewer --daemon enable
teamviewer
sudo teamviewer --daemon disable
它本身运行良好,并且会通过终端窗口请求我的密码。所以,现在我想为它制作一个启动器。我的.desktop
文件中有以下内容:
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Type=Application
Categories=Network;
Name=TeamViewer 12
Comment=Remote control and meeting solution.
Exec=gksu /path/here/Start.sh
Icon=teamviewer
这样,它会通过弹出窗口而不是终端窗口来请求我的密码,但这样做会使用 sudo 运行整个脚本,这是一个问题,因为 TeamViewer 拒绝使用 sudo 启动。我该如何解决这个问题?
答案1
您可以将脚本更改为:
#!/bin/bash
teamviewer --daemon enable
sudo -u USERNAME teamviewer
teamviewer --daemon disable
这样,您可以teamviewer
以 USERNAME 身份执行,同时仍以 sudo 用户身份运行其他脚本,就像使用 运行脚本一样gksu
。
如果您想要一种简单的方法来测试它,请运行以下命令gksu
:
#!/bin/bash
echo "Without 'sudo' -->" ; whoami
echo "With 'sudo -u USERNAME' -->" ; sudo -u USERNAME whoami