Настройте TightVNC программно с помощью BASH
Я пишу сценарий для настройки VNC (среди прочего) на многих устройствах на основе Debian. Я хочу включить в эту настройку VNC (в частности, по возможности и VightCNC) и задать ему заданный пароль (случайным образом генерируемый сценарием). Проблема в том, что каждое руководство, которое я нахожу, предполагает, что человек делает это, и готов сесть, ввести пароль и нажать клавишу ввода. Я не могу заставить 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
Но при каждом первоначальном запуске Узкий сервер всегда запрашивает пароль для ввода вручную:
Going to configure VNC
You will require a password to access your desktops.
Password: Password too short
Как я могу #1 обойти это, или #2 использовать bash / ожидать, чтобы дать ему пароль, чтобы сделать его счастливым?
1 ответ
# 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
Измените по вкусу, если ваша упаковка для ightvnc использует местоположение, отличное от ~/.vnc/
для passwd
файл.
Если у вас есть отдельные пароли только для просмотра и полный контроль, то:
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