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