rev |
line source |
pankso@2
|
1 #!/bin/sh
|
pankso@2
|
2 #
|
pankso@14
|
3 # Main CGI interface for TazPanel. In on word: KISS. Use the main cas form
|
pankso@14
|
4 # command so we are faster and dont load unneeded function. If nececarry
|
pankso@14
|
5 # you can use the lib/ dir to handle external resources.
|
pankso@2
|
6 #
|
pankso@2
|
7 echo "Content-Type: text/html"
|
pankso@2
|
8 echo ""
|
pankso@2
|
9
|
pankso@14
|
10 # Common functions from libtazpanel
|
pankso@14
|
11 . lib/libtazpanel
|
pankso@14
|
12 get_config
|
pankso@2
|
13
|
pankso@22
|
14 # Include gettext helper script.
|
pankso@22
|
15 . /usr/bin/gettext.sh
|
pankso@22
|
16
|
pankso@22
|
17 # Export package name for gettext.
|
pankso@22
|
18 TEXTDOMAIN='tazpanel-cgi'
|
pankso@22
|
19 export TEXTDOMAIN
|
pankso@22
|
20
|
pankso@31
|
21 # Network interface status
|
pankso@31
|
22 interface_status() {
|
pankso@31
|
23 if ifconfig | grep -A 1 $i | grep -q inet; then
|
pankso@31
|
24 ip=`ifconfig | grep -A 1 $i | grep inet | \
|
pankso@31
|
25 awk '{ print $2 }' | cut -d ":" -f 2`
|
pankso@32
|
26 echo "<td>connected</td><td>$ip</td>"
|
pankso@31
|
27 else
|
pankso@32
|
28 echo "<td>----</td><td>----</td>"
|
pankso@31
|
29 fi
|
pankso@31
|
30 }
|
pankso@31
|
31
|
pankso@32
|
32 # Catch network interface (network is splited this function and above
|
pankso@32
|
33 # must go in lib/libtazpanel
|
pankso@31
|
34 list_network_interfaces() {
|
pankso@31
|
35 table_start
|
pankso@31
|
36 cat << EOT
|
pankso@31
|
37 <tr id="thead">
|
pankso@31
|
38 <td>`gettext "Interface"`</td>
|
pankso@31
|
39 <td>`gettext "Name"`</td>
|
pankso@33
|
40 <td>`gettext "Status"`</td>
|
pankso@31
|
41 <td>`gettext "IP Address"`</td>
|
pankso@31
|
42 </tr>
|
pankso@31
|
43 EOT
|
pankso@31
|
44 for i in `ls /sys/class/net`
|
pankso@31
|
45 do
|
pankso@31
|
46 case $i in
|
pankso@31
|
47 eth*)
|
pankso@31
|
48 echo "<tr><td><img src='$IMAGES/ethernet.png' />$i</td>
|
pankso@31
|
49 <td>Ethernet</td> `interface_status`</tr>" ;;
|
pankso@31
|
50 wlan*|ath*|ra*)
|
pankso@31
|
51 echo "<tr><td><img src='$IMAGES/wireless.png' />$i</td>
|
pankso@31
|
52 <td>Wireless</td> `interface_status`</tr>" ;;
|
pankso@31
|
53 lo)
|
pankso@31
|
54 echo "<tr><td><img src='$IMAGES/loopback.png' />$i</td>
|
pankso@31
|
55 <td>Loopback</td> `interface_status`</tr>" ;;
|
pankso@31
|
56 *)
|
pankso@31
|
57 continue ;;
|
pankso@31
|
58 esac
|
pankso@31
|
59 done
|
pankso@31
|
60 table_end
|
pankso@31
|
61 }
|
pankso@31
|
62
|
pankso@2
|
63 #
|
pankso@2
|
64 # Commands
|
pankso@2
|
65 #
|
pankso@2
|
66
|
pankso@2
|
67 case "$QUERY_STRING" in
|
pankso@13
|
68 boot)
|
pankso@14
|
69 #
|
pankso@13
|
70 # Everything until user login
|
pankso@14
|
71 #
|
pankso@25
|
72 TITLE="- Boot"
|
pankso@13
|
73 xhtml_header
|
pankso@13
|
74 cat << EOT
|
pankso@13
|
75 <div id="wrapper">
|
pankso@14
|
76 <h2>`gettext "Boot & startup"`</h2>
|
pankso@14
|
77 <p>
|
pankso@14
|
78 `gettext "Everything that appends before user login."`
|
pankso@14
|
79 </p>
|
pankso@14
|
80 </div>
|
pankso@13
|
81
|
pankso@13
|
82 <h3>`gettext "Kernel cmdline"`</h3>
|
pankso@13
|
83 <pre>
|
pankso@13
|
84 `cat /proc/cmdline`
|
pankso@13
|
85 </pre>
|
pankso@13
|
86 EOT
|
pankso@14
|
87 ;;
|
pankso@13
|
88 users|user=*)
|
pankso@14
|
89 #
|
pankso@13
|
90 # Manage system user accounts
|
pankso@14
|
91 #
|
pankso@8
|
92 TITLE="- Users"
|
pankso@8
|
93 xhtml_header
|
pankso@13
|
94 cmdline=`echo ${QUERY_STRING#user*=} | sed s'/&/ /g'`
|
pankso@13
|
95 # Parse cmdline
|
pankso@13
|
96 for opt in $cmdline
|
pankso@2
|
97 do
|
pankso@13
|
98 case $opt in
|
pankso@13
|
99 adduser=*)
|
pankso@13
|
100 user=${opt#adduser=}
|
pankso@13
|
101 cmd=adduser ;;
|
pankso@13
|
102 deluser=*)
|
pankso@13
|
103 user=${opt#deluser=}
|
pankso@13
|
104 deluser $user ;;
|
pankso@13
|
105 passwd=*)
|
pankso@13
|
106 pass=${opt#passwd=} ;;
|
pankso@13
|
107 esac
|
pankso@2
|
108 done
|
pankso@13
|
109 case "$cmd" in
|
pankso@13
|
110 adduser)
|
pankso@13
|
111 echo "$user"
|
pankso@13
|
112 echo $pass
|
pankso@13
|
113 adduser -D $user
|
pankso@13
|
114 echo "$pass" | chpasswd
|
pankso@13
|
115 for g in audio cdrom floppy video
|
pankso@13
|
116 do
|
pankso@13
|
117 addgroup $user $g
|
pankso@13
|
118 done ;;
|
pankso@13
|
119 *) continue ;;
|
pankso@13
|
120 esac
|
pankso@13
|
121 cat << EOT
|
pankso@13
|
122 <div id="wrapper">
|
pankso@14
|
123 <h2>`gettext "Manage users"`</h2>
|
pankso@14
|
124 <p>`gettext "Manage human users on your SliTaz system"`</p>
|
pankso@14
|
125 </div>
|
pankso@13
|
126 <form method="get" action="$SCRIPT_NAME">
|
pankso@13
|
127 EOT
|
pankso@13
|
128 table_start
|
pankso@13
|
129 cat << EOT
|
pankso@13
|
130 <tr id="thead">
|
pankso@25
|
131 <td>`gettext "Login"`</td>
|
pankso@13
|
132 <td>`gettext "User ID"`</td>
|
pankso@13
|
133 <td>`gettext "Name"`</td>
|
pankso@13
|
134 <td>`gettext "Home"`</td>
|
pankso@13
|
135 <td>`gettext "SHell"`</td>
|
pankso@13
|
136 </tr>
|
pankso@13
|
137 EOT
|
pankso@13
|
138 for i in `cat /etc/passwd | cut -d ":" -f 1`
|
pankso@13
|
139 do
|
pankso@13
|
140 if [ -d /home/$i ]; then
|
pankso@13
|
141 login=$i
|
pankso@13
|
142 uid=`cat /etc/passwd | grep $i | cut -d ":" -f 3`
|
pankso@13
|
143 gid=`cat /etc/passwd | grep $i | cut -d ":" -f 4`
|
pankso@13
|
144 name=`cat /etc/passwd | grep $i | cut -d ":" -f 5 | \
|
pankso@13
|
145 sed s/,,,//`
|
pankso@13
|
146 home=`cat /etc/passwd | grep $i | cut -d ":" -f 6`
|
pankso@13
|
147 shell=`cat /etc/passwd | grep $i | cut -d ":" -f 7`
|
pankso@13
|
148 echo '<tr>'
|
pankso@13
|
149 echo "<td><input type='hidden' name='user' />
|
pankso@13
|
150 <input type='checkbox' name='deluser' value='$login' />
|
pankso@13
|
151 <img src='$IMAGES/user.png' />$login</td>"
|
pankso@13
|
152 echo "<td>$uid:$gid</td>"
|
pankso@13
|
153 echo "<td>$name</td>"
|
pankso@13
|
154 echo "<td>$home</td>"
|
pankso@13
|
155 echo "<td>$shell</td>"
|
pankso@13
|
156 echo '</tr>'
|
pankso@13
|
157 fi
|
pankso@13
|
158 done
|
pankso@13
|
159 table_end
|
pankso@13
|
160 cat << EOT
|
pankso@14
|
161 <div>
|
pankso@14
|
162 <input type="submit" value="`gettext "Delete selected user"`" />
|
pankso@14
|
163 </div>
|
pankso@13
|
164 </form>
|
pankso@13
|
165
|
pankso@25
|
166 <h3>`gettext "Add a new user"`</h3>
|
pankso@13
|
167 <form method="get" action="$SCRIPT_NAME">
|
pankso@28
|
168 <input type="hidden" name="user" />
|
pankso@25
|
169 <p>`gettext "User login:"`</p>
|
pankso@28
|
170 <p><input type="text" name="adduser" size="30" /></p>
|
pankso@25
|
171 <p>`gettext "User password:"`</p>
|
pankso@28
|
172 <p><input type="password" name="passwd" size="30" /></p>
|
pankso@25
|
173 <input type="submit" value="`gettext "Create user"`" />
|
pankso@28
|
174 </form>
|
pankso@13
|
175 EOT
|
pankso@13
|
176 ;;
|
pankso@2
|
177 network)
|
pankso@14
|
178 #
|
pankso@13
|
179 # Network configuration
|
pankso@14
|
180 #
|
pankso@8
|
181 TITLE="- Network"
|
pankso@8
|
182 xhtml_header
|
pankso@13
|
183 cat << EOT
|
pankso@13
|
184 <div id="wrapper">
|
pankso@14
|
185 <h2>`gettext "Networking`</h2>
|
pankso@14
|
186 <p>`gettext "Manage network connection and services`</p>
|
pankso@14
|
187 </div>
|
pankso@14
|
188
|
pankso@31
|
189 `list_network_interfaces`
|
pankso@31
|
190
|
pankso@14
|
191 <h3>Output of: ifconfig -a</h3>
|
pankso@14
|
192 <pre>
|
pankso@14
|
193 `ifconfig -a`
|
pankso@14
|
194 </pre>
|
pankso@13
|
195 EOT
|
pankso@14
|
196 ;;
|
pankso@2
|
197 hardware)
|
pankso@14
|
198 #
|
pankso@14
|
199 # Hardware drivers, devices, filesystem, screen
|
pankso@14
|
200 #
|
pankso@8
|
201 TITLE="- Hardware"
|
pankso@8
|
202 xhtml_header
|
pankso@13
|
203 cat << EOT
|
pankso@13
|
204 <div id="wrapper">
|
pankso@14
|
205 <h2>`gettext "Drivers & Devices"`</h2>
|
pankso@14
|
206 <p>`gettext "Manage your computer hardware`</p>
|
pankso@14
|
207 </div>
|
pankso@13
|
208 EOT
|
pankso@2
|
209 echo '<pre>'
|
pankso@14
|
210 fdisk -l | fgrep Disk
|
pankso@13
|
211 echo '</pre>'
|
pankso@14
|
212 echo '<pre>'
|
pankso@14
|
213 df -h | grep ^/dev
|
pankso@14
|
214 echo '</pre>'
|
pankso@14
|
215 echo '<pre>'
|
pankso@14
|
216 lspci
|
pankso@14
|
217 echo '</pre>'
|
pankso@14
|
218 ;;
|
pankso@2
|
219 *)
|
pankso@14
|
220 #
|
pankso@2
|
221 # Default xHTML content
|
pankso@14
|
222 #
|
pankso@8
|
223 xhtml_header
|
pankso@2
|
224 cat << EOT
|
pankso@13
|
225 <div id="wrapper">
|
pankso@14
|
226 <h2>`gettext "Host:"` `hostname`</h2>
|
pankso@14
|
227 <p>`gettext "SliTaz administration et configuration Panel"`<p>
|
pankso@14
|
228 </div>
|
pankso@14
|
229
|
pankso@14
|
230 <h3>`gettext "Summary"`</h3>
|
pankso@14
|
231 <div id="summary">
|
pankso@33
|
232 <p>
|
pankso@33
|
233 `gettext "Uptime:"` `uptime`
|
pankso@33
|
234 </p>
|
pankso@33
|
235 <p>
|
pankso@33
|
236 `gettext "Memory in Mb"`
|
pankso@33
|
237 `free -m | grep Mem: | awk \
|
pankso@33
|
238 '{print "| Total:", $2, "| Used:", $3, "| Free:", $4}'`
|
pankso@33
|
239 </p>
|
pankso@33
|
240 <!-- Close summary -->
|
pankso@33
|
241 </div>
|
pankso@14
|
242
|
pankso@33
|
243 <h4>`gettext "Network status"`</h4>
|
pankso@33
|
244 `list_network_interfaces`
|
pankso@33
|
245
|
pankso@33
|
246 <h4>`gettext "Filesystem usage statistics"`</h4>
|
pankso@14
|
247 <pre>
|
pankso@14
|
248 `df -h | grep ^/dev`
|
pankso@14
|
249 </pre>
|
pankso@2
|
250 EOT
|
pankso@2
|
251 ;;
|
pankso@2
|
252 esac
|
pankso@2
|
253
|
pankso@14
|
254 xhtml_footer
|
pankso@14
|
255 exit 0
|