This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
управление_сервисами [2009/03/05 08:15] val created |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Управление сервисами ====== | ||
- | |||
- | ===== Супердемон inetd ===== | ||
- | <code> | ||
- | [gX:~] # cd /etc | ||
- | |||
- | [gX:/etc] # cat inetd.conf | ||
- | ... | ||
- | telnet stream tcp nowait root /usr/libexec/telnetd telnetd | ||
- | shell stream tcp nowait root /usr/libexec/rshd rshd | ||
- | ... | ||
- | |||
- | [gX:/etc] # /etc/rc.d/inetd rcvar | ||
- | |||
- | [gX:/etc] # cat >> rc.conf | ||
- | inetd_enable="YES" | ||
- | |||
- | [gX:/etc] # /etc/rc.d/inetd start | ||
- | Starting inetd. | ||
- | |||
- | Протокол rsh | ||
- | [gX:~] # adduser | ||
- | Username: uY | ||
- | ... | ||
- | |||
- | [gX:~] # telnet gY | ||
- | User (root): uX | ||
- | Password: | ||
- | |||
- | $ cat .rhosts | ||
- | ... | ||
- | gX root | ||
- | ... | ||
- | |||
- | $ exit | ||
- | Connection closed by foreign host. | ||
- | |||
- | [gX:~] # rsh -l uX gY "uname -a" | ||
- | </code> | ||
- | |||
- | ==== Использование SHELL и inetd ==== | ||
- | |||
- | === telnet сервер === | ||
- | <code> | ||
- | [gX:~] # cat shell.sh | ||
- | #!/bin/sh | ||
- | echo -n "> " | ||
- | while read c | ||
- | do | ||
- | # $c && echo "OK" | ||
- | ${c%?} && echo "OK" | ||
- | echo -n "> " | ||
- | done | ||
- | |||
- | [gX:/etc] # cat /etc/inetd.conf | ||
- | ... | ||
- | telnet stream tcp nowait root /root/shell.sh | ||
- | ... | ||
- | </code> | ||
- | |||
- | === WEB shell === | ||
- | <code> | ||
- | [gX:/etc] # cat /etc/inetd.conf | ||
- | ... | ||
- | http stream tcp nowait root /root/webshell.sh webshell.sh | ||
- | ... | ||
- | |||
- | [gX:~] # cat webshell.sh | ||
- | #!/bin/sh | ||
- | |||
- | read s | ||
- | c=$(expr "$s" : ".*=\(.*\) " | sed "s/+/ /g") | ||
- | |||
- | if [ "$c" = "" ] | ||
- | then | ||
- | echo '<html><h1>Command:</h1><form action=""><input type=text name=command></form></html>' | ||
- | exit 0 | ||
- | fi | ||
- | |||
- | $c | ||
- | </code> | ||
- | |||
- | === http сервер === | ||
- | <code> | ||
- | [gX:/etc] # cat /etc/inetd.conf | ||
- | http stream tcp nowait root /root/httpd.sh httpd.sh | ||
- | |||
- | [gX:~] # cat httpd.sh | ||
- | #!/bin/sh | ||
- | |||
- | read s | ||
- | c=$(expr "$s" : "GET..\(.*\) ") | ||
- | |||
- | if [ "$c" = "" ] | ||
- | then | ||
- | echo "<html> $s <h1>shell WebServer</h1></html>" | ||
- | exit 0 | ||
- | fi | ||
- | |||
- | if [ -x "/root/$c" ] | ||
- | then | ||
- | /root/$c | ||
- | else | ||
- | cat /root/$c | ||
- | fi | ||
- | </code> | ||
- | |||
- | ===== Служба devd ===== | ||
- | ==== Использование shell и devd ==== | ||
- | === Автомонтирование flash накопителя === | ||
- | <code> | ||
- | [gX:~] # cd /etc | ||
- | [gX:/etc] # mkdir devd | ||
- | [gX:/etc] # cd devd | ||
- | |||
- | [gX:/etc/devd] # cat my.conf | ||
- | attach 30 { | ||
- | device-name "umass0"; | ||
- | action "sleep 3; /sbin/mount -t msdos /dev/da0s1 /mnt/"; | ||
- | }; | ||
- | </code> | ||