Contents of /mcore-src/trunk/mcore-tools/src/modules/tigervnc/vnc.client.class.in
Parent Directory | Revision Log
Revision 2835 -
(show annotations)
(download)
Wed Sep 5 07:36:12 2018 UTC (5 years, 7 months ago) by niro
File size: 2675 byte(s)
Wed Sep 5 07:36:12 2018 UTC (5 years, 7 months ago) by niro
File size: 2675 byte(s)
-use trysudo to support unprivileged server instances
1 | # $Id$ |
2 | |
3 | provide x0vnc |
4 | require basic-video |
5 | |
6 | help_vnc_service() |
7 | { |
8 | mecho "get vnc.service" |
9 | mecho " Shows X0-VNC facility status." |
10 | mecho |
11 | mecho "set vnc.service [command]" |
12 | mecho " Controls the X0-VNC facility." |
13 | mecho " Commands:" |
14 | mecho " enable - Enable vnc for the X0 display" |
15 | mecho " disable - Disable vnc for the X0 display" |
16 | mecho |
17 | mecho " X11 restart is required!" |
18 | } |
19 | |
20 | help_vnc_passwd() |
21 | { |
22 | mecho "get vnc.passwd" |
23 | mecho " Shows if a vnc password was set." |
24 | mecho |
25 | mecho "set vnc.passwd [password]" |
26 | mecho " Sets given vnc password for remote connections." |
27 | } |
28 | |
29 | helper_vnc_enable() |
30 | { |
31 | # add to module section |
32 | local CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/module/99-vnc.conf" |
33 | clearconfig |
34 | addconfig ' Load "vnc"' |
35 | |
36 | # add to screen section |
37 | local CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen/99-vnc.conf" |
38 | clearconfig |
39 | addconfig ' Option "SecurityTypes" "VncAuth"' |
40 | addconfig ' Option "UserPasswdVerifier" "VncAuth"' |
41 | addconfig ' Option "PasswordFile" "/root/.vnc/passwd"' |
42 | |
43 | # requires graphic! |
44 | helper_graphic_rebuild_xorg_conf_d |
45 | |
46 | mecho "Done but X11 restart required!" |
47 | } |
48 | |
49 | helper_vnc_disable() |
50 | { |
51 | local CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/screen/99-vnc.conf" |
52 | clearconfig |
53 | |
54 | local CONFIG="${MROOT}/${MCORE_CONFIG_PATH}/xorg/module/99-vnc.conf" |
55 | clearconfig |
56 | |
57 | # requires graphic! |
58 | helper_graphic_rebuild_xorg_conf_d |
59 | |
60 | mecho "Done but X11 restart required!" |
61 | } |
62 | |
63 | get_vnc_service() |
64 | { |
65 | if [ -f ${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/25-module.conf ] |
66 | then |
67 | if [[ -n $(grep 'Load.*vnc' ${MROOT}@@SYSCONFDIR@@/X11/xorg.conf.d/25-module.conf) ]] |
68 | then |
69 | mecho "VNC facility is enabled." |
70 | rvecho "1" |
71 | else |
72 | mecho "VNC facility is disabled." |
73 | rvecho "0" |
74 | fi |
75 | else |
76 | mecho "VNC facility not configured yet." |
77 | rvecho "0" |
78 | fi |
79 | } |
80 | |
81 | set_vnc_service() |
82 | { |
83 | local action="${CLASS_ARGV[0]}" |
84 | if [[ -z ${action} ]] |
85 | then |
86 | help_vnc_service |
87 | return 1 |
88 | fi |
89 | |
90 | case ${action} in |
91 | enable) helper_vnc_enable ;; |
92 | disable) helper_vnc_disable ;; |
93 | *) help_vnc_service && return 1 ;; |
94 | esac |
95 | } |
96 | |
97 | get_vnc_passwd() |
98 | { |
99 | trysudo test -s ${MROOT}/root/.vnc/passwd |
100 | if [ $? -eq 0 ] |
101 | then |
102 | mecho "A VNC password was set." |
103 | rvecho "1" |
104 | else |
105 | mecho "No VNC password was set yet." |
106 | rvecho "0" |
107 | fi |
108 | } |
109 | |
110 | set_vnc_passwd() |
111 | { |
112 | local pass="${CLASS_ARGV[0]}" |
113 | local vncconfigdir="${MROOT}/root/.vnc" |
114 | local vncpasswd="${vncconfigdir}/passwd" |
115 | [[ -z ${pass} ]] && help_vnc_passwd && return 1 |
116 | trysudo test -d ${vncconfigdir} ] || trysudo install -d ${vncconfigdir} |
117 | |
118 | trysudo vncpasswd "${vncpasswd}" &> /dev/null << EOF |
119 | ${pass} |
120 | ${pass} |
121 | n |
122 | EOF |
123 | if [ $? -eq 0 ] |
124 | then |
125 | mecho "A VNC password was successfully set." |
126 | rvecho "1" |
127 | else |
128 | mecho "Could not set a VNC password." |
129 | rvecho "0" |
130 | fi |
131 | } |