📖

最近の発見(Samba・動的・静的・CGI)

2025/02/08に公開

気づいたことを簡単にまとめます。


私のPC(Windows)からBashが使えた理由

私のPCはWindowsでBash環境はないのに、Bashが使えた。

  • これはTera Termを使って共有サーバにリモート接続し、このサーバのOSがLinuxだったため。
  • 実際にBashが動作しているのは、私のPCではなく、Tera Termの画面上でリモート先のLinuxサーバを動かしている。

また、Samba(サンバ)を使用してるため、Windowsサーバにファイルがあるかのように、Linuxサーバ上のファイルを編集できたらしい。

Samba(サンバ)とは?

WindowsとLinux(Unix系OS)の間でファイルやプリンタを共有するためのソフトウェア。
WindowsとLinuxは異なるファイル共有の仕組みを持っているが、Sambaを使うと、Linux側でWindowsと同じプロトコルを利用できるようになる。

  • Windows → SMB(Server Message Block)プロトコルを使用
  • Linux → NFS(Network File System)などを使用

Sambaを使うと、LinuxのファイルシステムをWindowsのSMB共有として提供するので、Windows PCの「ネットワークドライブ」や「エクスプローラー」から、Linuxサーバ上のファイルを開くことができる。
⬇️
つまり…
ファイルを開いたり編集したりする際、ローカルPCにあるかのように扱うことができる。


とある機能で「ログインできません」のメッセージを出せない理由

作成中のとある機能の画面を「非公開」にし、ログインできるか動作したところ、ログインが弾かれるだけで、「非公開状態です」などのメッセージが出なかった。
メッセージをつけるか提案したところ、この画面は「CGIなどが必要となりできない」と言われた。

  • この画面は「静的なページ」であり、動的に処理する変更プログラムを持っていない可能性あり。
  • 静的なページとは、HTMLファイルなどあらかじめ用意されており、アクセスした時そのまま表示するもの。
  • 「ログイン情報をチェックして、PW間違いか非公開かを表示する」には、「動的な処理」が必要。
  • 動的な処理をするには、サーバ側でCGI(Common Gateway Interface) などのプログラムが動く環境が必要。
  • 今回の業務での画面は、CGIなどのプログラムが動作しないため、メッセージを表示できず、PWが間違ってるかのように弾かれてしまう。

CGIとは

CGI(Common Gateway Interface)は、クライアント側のWebブラウザの要求に応じてWebサーバが
外部プログラムを呼び出して、その実行結果がHTTPを介してクライアントのWebブラウザに送信される仕組みのことです。
Webサイトで例えば掲示板、アクセスカウンター、アンケートフォームなどWebページの内容を動的に
変化させたい時にCGIを使用します。CGIのプログラムはPerl(パール)と呼ばれるプログラミング言語などによって記述されています。

このサイトより引用。

つまり、CGIは「webサーバがブラウザの要求に応じて、プログラムを実行する仕組み。
単に静的なHTMLを表示させるだけなら、CGIは必要ない。
ユーザから情報を受け取って処理をする(動的なコンテンツを作成する)場合、CGIが必要。

今回の場合、ユーザの入力(ログイン)情報を受け取ったり、それをチェックする仕組みがない。
パスワード間違い・非公開状態化を判断するには、何らかの動的処理(プログラム)が必要なため、別途作業が必要となる。

ログイン情報を入れる⇒サーバがログイン情報正しいかチェック⇒結果に合わせて適切なメッセージを出す

この処理をするには、サーバ側でプログラムを動かし、ログイン情報を処理する仕組み(CGI)が必要となる。

参考文献

https://www.infraexpert.com/study/tcpip16.5.html#google_vignette
https://qiita.com/_lvyuu/items/a90652cad440fdee21e8
https://e-words.jp/w/CGI.html#google_vignette

Discussion