使用 BASH 以编程方式设置 TightVNC
Set up TightVNC programmatically with BASH
我正在编写脚本以在许多基于 debian 的设备上设置 VNC(除其他外)。我想在此设置中包含 VNC(具体来说,如果可能的话,tightVNC)并让它设置给定的密码(由脚本随机生成)。问题是,我发现的每一个指南似乎都假设是人在做这件事,并准备好坐下来输入密码并按回车键。我似乎无法让 Bash 向 VNC 回显密码(它总是显示 'password too short'),也无法让 'expect' 正常工作。
我找到的示例指南如下所示:
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 / 期望给它一个密码让它开心?
# 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
shebang),则改为:
vncpasswd -f >"$HOME/.vnc/passwd" <<EOF
$full_password
$view_password
EOF
我正在编写脚本以在许多基于 debian 的设备上设置 VNC(除其他外)。我想在此设置中包含 VNC(具体来说,如果可能的话,tightVNC)并让它设置给定的密码(由脚本随机生成)。问题是,我发现的每一个指南似乎都假设是人在做这件事,并准备好坐下来输入密码并按回车键。我似乎无法让 Bash 向 VNC 回显密码(它总是显示 'password too short'),也无法让 'expect' 正常工作。
我找到的示例指南如下所示: 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 / 期望给它一个密码让它开心?
# 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
shebang),则改为:
vncpasswd -f >"$HOME/.vnc/passwd" <<EOF
$full_password
$view_password
EOF