vncserver 不会在使用 sudo 执行的 shell 脚本中运行

vncserver 不会在使用 sudo 执行的 shell 脚本中运行

我有一个 shell 脚本,它使用 sudo apt-get 安装几个程序,然后打开 vncserver,然后安装更多东西。

这有效:

#!/bin/sh
vncserver

>./my_script.sh

但这不起作用:

#!/bin/sh
sudo apt-get update
vncserver

>./my_script.sh 

这也行不通:

#!/bin/sh
vncserver

>sudo ./my_script.sh

当它不起作用时,它会返回错误vncserver: Wrong type or access mode of /home/username/.vnc

有人问题说这是一个已知问题。那么我如何在 my_script 中运行 vncserver?

答案1

您可以使用sudo -u它将特定命令恢复为非 root 用户。

前任。:

$ cat myscript.sh
#!/bin/sh

whoami

sudo -u $SUDO_USER whoami

然后

$ sudo ./myscript.sh
[sudo] password for steeldriver: 
root
steeldriver

相关内容