使用BASH以编程方式设置TightVNC



我正在编写一个脚本,用于在许多基于debian的设备上设置VNC(以及其他东西)。我想在这个设置中包括VNC(如果可能的话,具体来说是tightVNC),并让它设置一个给定的密码(由脚本随机生成)。问题是,我找到的每个指南似乎都假设有人在做这件事,并且准备坐下来输入密码并按enter键。我似乎不能让Bash回显密码到VNC(它总是说"密码太短"),也不能让"期望"正常工作。

我发现的一个示例指南是这样的:http://www.penguintutor.com/linux/tightvnc

我在找类似的东西:

#!/bin/bash
echo "Going to configure VNC"
#turn on vnc server
tightvncserver
#spit out password to vnc server for first run only
echo $password
#confirm the pw
echo $password

但是,每次首次运行tightvncserver时,它总是要求手动输入密码:

Going to configure VNC
You will require a password to access your desktops.
Password: Password too short

我怎么能#1绕过这个,或者#2使用bash/expect给它一个密码让它高兴?

# Configure VNC password
umask 0077                                        # use safe default permissions
mkdir -p "$HOME/.vnc"                             # create config directory
chmod go-rwx "$HOME/.vnc"                         # enforce safe permissions
vncpasswd -f <<<"$password" >"$HOME/.vnc/passwd"  # generate and write a password

如果您的tightvnc的包装使用passwd文件的~/.vnc/以外的位置,请修改。


如果您有单独的仅查看密码和完全控制密码,则:

vncpasswd -f <<<"$full_password"$'n'"$view_password" >"$HOME/.vnc/passwd"

如果您需要与/bin/sh兼容(或者不使用#!/bin/bash shebangs),则改为:

vncpasswd -f >"$HOME/.vnc/passwd" <<EOF
$full_password
$view_password
EOF

相关内容

  • 没有找到相关文章

最新更新