🙁

無料でLinuxの勉強ができる!SadServersとは?

2024/01/14に公開

SadServersとは、問題が起きているLinuxサーバのトラブルシューティングを通して、Linuxを学習することができる無料WEBサイトです。自分でLinux環境を作る必要がないため、気軽に取り組むことができます。
https://sadservers.com/
以下に使い方をご紹介するので、ぜひやってみてください。

使い方

Welcome

SadServersにアクセスすると、以下のようにWelcome画面が表示されます。

【日本語訳】

トラブルシューティングで悲しいサーバーをハッピーに!
"LeetCode※1 のLinux版です"
Capture The Flag※2 に挑戦。あなたのデバッグスキルを鍛え、証明しましょう。
次のSRE/DevOps※3 面接の練習をしましょう。
問題のあるフルリモートのLinuxサーバーを入手し、それを修正します。

※1 LeetCode:オンラインでコーディングの練習ができるWEBサイト
※2 Capture The Flag:情報セキュリティなどの分野で開催される、謎解き課題のタイムを競うイベントの総称
※3 モダンなソフトウェア開発と運用のアプローチ (SRE:信頼性エンジニアリング DevOps:開発と運用の統合)

 

問題一覧

Show Me Sad Serversを押下すると、以下のように問題一覧が表示されます。
2024/1/14現在、EasyからHardまで計34問の問題が用意されています。
TypeにNo Registrationと記載されている問題は、ユーザ登録せずに取り組むことができます。

一番上のタグを選択すると、タグと関連する問題のみが表示されます。
 

問題画面

問題名を押下すると、以下のような問題画面が表示されます

【記載項目 日本語訳】

Senario : タイトル
Level : 難易度(Easy,Medium,Hard)
Type : 種類(Fix,Do,Hack)
Description : 説明
Test : 課題
Time to Solve : 制限時間

Runを押下すると、仮想サーバーが起動します。

しばらく経つと、次の画面に切り替わります

General Instructionが追加されます

【General Instruction 日本語訳】

あなたはSSHセッション経由で実際のLinuxサーバー(エフェメラル仮想マシン)にフルアクセスできます。(sudoが実行できるナリオもあれば、sudo shutdown以外は実行できないシナリオもあります)。時間内にテストをパスできるように、問題の修正に必要なことを行ってください。時間が経過すると、仮想マシンは終了します。

制約として、サーバーからインターネットに出ることはできません。DNSはローカルで利用できます。また、SadServersが正常に動作するために必要な、問題とは無関係のサービス(特にポート2020と6767で動作しているサービス)を妨害しないでください。

もし行き詰まったり、どうしたらいいかわからない場合は、「Next Clue / Solution(次のヒント/解決策)」ボタンをクリックすると、ヒントが表示されます。ヒントウィンドウを閉じて、もう一度「Next Clue / Solution」をクリックすると、さらに新しいヒントが表示されます。 問題が解けたと思ったら、「Check My Solution(自分の解決策を確認する)」ボタンをクリックし、指定されたテスト通りに解けたか確認してください。

地球のCO2排出量を節約するため、またAWSの利用料金を削減するため、"Check My Solution "ボタンで正しい解答が検出された場合、サーバーは終了します。もし時間切れになる前にあきらめた場合は、次のようにしてサーバーをシャットダウンしてください
$ sudo shutdown -h now

 

ターミナル

Open the server terminal in a new window.を押下すると、仮想サーバのターミナルが出現します。

このターミナル上で、問題に応じて様々なコマンドを実行し、サーバの抱える問題を解決します。
 

ヒント

問題画面Next Clue/Solutionを押下すると、ヒントのポップアップが出現します。
ヒントは、表示させるたびに一つずつ増えていきます。


ヒントの内容はぼかしています。
 

チェック

問題画面Check My Solutionを押下すると、問題が解決したかどうかチェックしてくれます。問題を解決できていれば、花火のGIFが表示され、自動的にサーバが停止されます。


 

その他

問題を解く際の注意点

General Instructionにも記載されていますが、以下の内容にご留意ください。

  • 時間切れ前にあきらめる際は、以下コマンドを実行してサーバを停止する
    $ sudo shutdown -h now
  • 問題とは無関係のサービス(特にポート:2020と:6767で動作しているサービス)を妨害しない

 

SadServersの支援

問題一覧画面の右下のアイコンをクリックすると、サイトの運営者を支援することができます。

 

SadServersのサイトマップはこちら

SadServersに関する記事をまとめています。
SadServersに取り掛かるための基礎知識や、各問題・ヒントの日本語訳、解き方の解説などを掲載しています。
https://zenn.dev/comf_nakamura/articles/sadservers_sitemap

Discussion