使用 sudo 运行 sudo 命令而不运行整个脚本(使用桌面启动器)

使用 sudo 运行 sudo 命令而不运行整个脚本(使用桌面启动器)

我的脚本是这样的:

#!/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

相关内容