サーバー探検中、/usr/local/binにgccを見つけた。
まさかインストールされているとは思わなかった。
ライトプランでも、こいつが動けば夢が広がりそうである。
ただ管理用にgccが入っているだけでちゃんと動くかは分からないし、そもそもライトプランでSSHは使えない。
でもやっぱり見つけた以上は動かしてみたいので、物は試しでチャレンジしてみるしかない。
さくらインターネットは公式にシェルスクリプトは動作可能なので、以下を作ってアップロードしてみた。
[exec.cgi]
#!/bin/sh
echo "Content-Type: text/plain"
echo ""
echo "$(ls)"
echo "OK"
超簡単なスクリプトだけど20年ぶりのスクリプトだ。
ちゃんと動くか心配していたけど、exec.cgiにアクセスするとファイルリストがきちんと取れた。
そういえば、自分が借りているサーバーのディスク容量が気になったので、ちょっと書き換えて実行してみる。
echo "$(df -h)"
----
結果
Filesystem Size Used Avail Capacity Mounted on
/dev/vtbd0p2 19G 5.4G 12G 30% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/vtbd0p4 29G 4.6G 22G 17% /var
/dev/vtbd1 1.9T 269G 1.5T 15% /home
OK
どうやら2TBのディスクが載っているみたいだね。やっぱり全員分のディスク容量は用意されていないようだ。
今のところ1ユーザ1GBも使ってないみたい。自分は既に6GBだけど。。。
(ちなみにサーバコントロールパネルによると、このサーバーはAMD EPYC-Rome Processor 24GBで稼働しているそうだ)
これならイケそうだとワクワクしながら、以下に書き換えて再アクセス!
echo "$(gcc -v)"
----
結果
OK
うぅ結果が空欄で返ってきた。やっぱり動かないよね。。。
が、念のためサーバーのエラーログを見ると
AH01215: gcc version 9.4.0 (FreeBSD Ports Collection)
おぉ!エラーとしてちゃんとバージョンが返ってきた。
コンパイルできそうなので早速ソースを用意してアップロードしてみる
[hello.c]
#include <stdio.h>
int main(void)
{
printf("Content-Type: text/plain\n\n");
printf("Hello World!\n");
return 0;
}
そしていよいよコンパイル実行だ!
echo "$(gcc -o hello.cgi hello.c)"
AH01215: compilation terminated.
エラーログとともに、hello.cgiができた!
早速ブラウザからhello.cgiをアクセスすると
Hello World!
ちゃんと動いたよ!
C言語で作った64bitネイティブ版のCGIプログラム。人生初でちょっと嬉しい!
サポート外でも工夫すれば動かせる環境を用意してくれるのはいいね。
機会があったら怪しげなツールでも入れてみよう。
うんうんSSHが使えなくても、なんとかなるもんである。
またまたハッカーに一歩近づいた気持ちになった。
コメント