以前(http://kunst1080.hatenablog.com/entry/2014/01/26/180321)、netcatでwebサーバできないかなーってシェルスクリプト書いたりしていたわけですが、そもそもinetdで指定のポートを通して標準入出力が扱えるってことに気づいたのでやってみたテスト。

### 前準備 テスト用にJail環境を構築し、ユーザー「test」を作成。
IP・・・192.168.29.21
一般ユーザー・・・test
(Jail環境構築のメモはこちら→http://kunst1080.hatenablog.com/entry/2013/11/18/144826 )

### とりあえず繋ぐ
##### rootで、/etc/inetd.confを編集 ```sh http stream tcp nowait test /home/test/hoge.sh
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

</div>
<div class="section">
    ##### rootで/etc/hosts.allowを編集
    ```sh
ALL : ALL : allow

```とりあえず、ね・・・

</div>
</div>
<div class="section">
    ### とりあえず接続まで
    
<div class="section">
    ##### メインのスクリプトをかきかき
    /home/test/hogesh
```sh
#!/bin/sh
echo this is server
echo args is $*
echo pwd = $PWD
touch /home/test/aho
echo -------------------
set

##### ブラウザで接続してみる http://192.168.29.21 ``` this is server args is pwd = / ------------------- BLOCKSIZE=K HOME=/ IFS=' ' MAIL=/var/mail/test OPTIND=1 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/test/bin PPID=2142 PS1='$ ' PS2='> ' PS4='+ ' PWD=/ RC_PID=2125 inetd_dummy=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ```
##### telnetで叩いてみる ```sh % telnet 192.168.29.21 80

Trying 192.168.29.21… Connected to jail.test. Escape character is '^]'. this is server args is pwd = /

BLOCKSIZE=K HOME=/ IFS=' ' MAIL=/var/mail/test OPTIND=1 PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/home/test/bin PPID=2142 PS1='$ ' PS2='> ' PS4='+ ' PWD=/ RC_PID=2125 inetd_dummy=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Connection closed by foreign host.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<br/>
<br/>


</div>
</div>
<div class="section">
    ### HTTPっぽいものを返してみる
    /home/test/hoge.sh
```sh
#!/bin/sh
cat &lt;&lt;++EOS
HTTP/1.0 200 OK
Content-type: text/html



<title>test page</title>


<h1>Hello World!</h1>


++EOS

##### ブラウザからアクセス http://192.168.29.21 ```sh Hello World!
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
</div>
<div class="section">
    ##### telnetからアクセス
    ```sh
% telnet 192.168.29.21 80
Trying 192.168.29.21...
Connected to 192.168.29.21.
Escape character is &#39;^]&#39;.
HTTP/1.0 200 OK
Content-type: text/html

&lt;html>
&lt;head>
&lt;title>test page&lt;/title>
&lt;/head>
&lt;body>
&lt;h1>Hello World!&lt;/h1>
&lt;/body>
&lt;/html>
Connection closed by foreign host.

```なんだかそれらしい感じ!!

</div>
</div>