Proxmoxでサーバ構築

イメージ
これまでテスト用にi5第8世代の廃棄PCを使用してきた。 とはいえ今の所何も問題は起きていないが、入れ替えも視野に入れ予備サーバを用意することに。 - メモリ:16GB - SSD:500GB - DDNS+Let's Encrypt - Ubuntu24.04 この環境なので、すぐに構築し直すことは可能だが、とりあえずこのまま置いておいて別のサーバを立てることにする。 最初はRaspberryPiで構築しようと思ったけれど、本体電源+外付けHDD電源+ディスプレイ電源と考えると、邪魔なので廃案。 そこで廃棄しようと思っていた「Lavie NS300/N」が手元にあったので、これを利用することに。 一応バッテリーは正常に動作するので、UPS代わりにそのまま。 - Core™ i3-8145U(やや非力) - メモリ:8GB(少ないが…) - HDD:1TB なので、これまで使用しているものより、若干スペックダウン。 ただ用途は、非常勤で教えに行っている専門学校生用の練習マシンとする予定なので、まぁ問題なさそう。 Proxmox導入 直接、Linuxを導入してもよいのだけれど、今回は Proxmox を導入し、その上でUbuntu Serverを動作させる計画。 USBにProxmoxのイメージを焼いて、インストールすれば問題なく完了。 ただ、現在のバージョンはdebian - trixieがベースになっているので、若干参考になるサイトが少なめ。とはいえ旧版のは参考になるので調べつつ… HDDなだけあって、最初の起動は少し遅いものの、立ち上がってしまえば問題ない。 さぁ、VMにするかCTにするか…。 GUI使うのであれば、VMかなぁ。サーバだしCTでいいかぁ。 という程度の選定で、CT(コンテナ)で進めることに。 - メモリ:4GB - CPU:2 - HDD:20GB(root disk) - HDD:400GB(home用) - Ubuntu24.04 という構成で進めることにした。 テンプレートを用意して、初期設定を行い起動。 まぁすんなりと入った。 液晶を閉じたら、Suspendになってしまったので、若干設定変更。 $ sudo nano /etc/systemd/logind.conf HandleLidSwitch=ignore $ sudo sy...

改行コード でハマった

パスワードの格納に使っていて

いつもはMac上で作業していて、Linux上で作業したらハマったのでまとめておく。

稼働を始めたシステム上からユーザ登録すれば、問題はないものの、まとめて追加して欲しいと連絡を受けた。
 DBに直接登録しようとして、仕様の違いでミスを犯すところだった。

PHP上では
$pass = md5("password");
みないな処理で、この値をDBに格納している。


で、もって手作業で追加するなら
$ md5 -s passwordMD5 ("password") = 5f4dcc3b5aa765d61d8327deb882cf99

と表示されるのを、CSVにして、まとめて追加作業を行う。
(実際はスクリプトで吐くんだけど)

Macでのmd5は以下の通り。

$ md5 --helpmd5: illegal option -- -usage: md5 [-pqrtx] [-s string] [files ...]

今回、外で作業する必要が発生したので、 同様にLinux Noteで作業した。
ところが、Linuxには「md5」ではなく「md5sum」しかない。

$ md5sum --help使用法: md5sum [OPTION]... [FILE]...MD5 (128-bit) チェックサムを表示または照合します。FILE の指定が無いか、 - が指定された場合、標準入力から読み込みます。
  -b, --binary         バイナリモードで読み込む  -c, --check          FILE から MD5 チェックサムを読み込み、照合する  -t, --text           テキストモードで読み込む (デフォルト)
次の3つのオプションはチェックサムを照合する場合にのみ有効です:      --quiet          ファイルのチェックサムの照合が成功したときに OK を表示しない      --status         何も出力しない。終了コードで結果を判別する  -w, --warn           チェックサム行の書式が不正な場合に警告を行う
      --strict         --check と併せて使用し、無効な入力がある場合に 0 以外で終了する      --help     この使い方を表示して終了する      --version  バージョン情報を表示して終了する
使い方が違うだけなので、まあパイプで喰わせればいいやと…。

$ echo 'password' | md5sum286755fad04869ca523320acce0dc6a4  -

あれれ?
mac上での実行と、結果が違う。

これは、何かがおかしい。

そこで、ファイルに文字列を書き込んで、検証。
$ cat - > p.txtp$ md5sum p.txt286755fad04869ca523320acce0dc6a4  p.txt

あれ? さっきと同じ結果。機種によって違うのか?
でも、そんなはずはない。

原因は改行コードだった

直接ファイルをエディタで編集していて、気づいた。

p.txtの中身が
password[改行]
になっている。
ここで、[改行]を削除して、通してみると

$ md5sum p.txt5f4dcc3b5aa765d61d8327deb882cf99  p.txt
最初と同じ結果になった。

問題は改行コードだ!
つまり、echo の出力の最後に改行コードが付加されているから結果が違っていた。

ECHO(1)                          User Commands                         ECHO(1)
NAME       echo - display a line of text
SYNOPSIS       echo [SHORT-OPTION]... [STRING]...       echo LONG-OPTION
DESCRIPTION       Echo the STRING(s) to standard output.
       -n     do not output the trailing newline
はあ、manを見るとちゃんと書いてある…。

$ echo -n 'password' | md5sum5f4dcc3b5aa765d61d8327deb882cf99  -

改行の出力を抑制してやらないと、いけなかった訳だ。

うぅ、こんな事で時間を無駄に使ってしまった。
まあ、原因がはっきりして良かったけどね…。

コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?