スタッフブログ

LinuxのWebコンソール「Webmin 1.8.60」でハマった話


SCD プラットフォームビジネスユニットエンジニアの新宅 伸啓です。
青森市にもいよいよ雪が降った…と思ったら、真冬並みの勢いで雪が積もっていて驚いています。まだ地吹雪みたいになっていないだけ良いほうなのかもしれませんが、まだ地熱が残っている状態で新雪が大量に積もっている状況なので、中途半端に溶けて路面状況が非常に悪くなってきています。私は徒歩で通勤していますので、それほど影響はないのですが、路面状況の酷さから車の流れも悪く、他の方々も通勤が大変そうです。
インフルエンザワクチンも製造に失敗したとかなんとかで、接種したくてもできない人が結構いるようです。一気に冷えたので、風邪やインフルエンザも一気に増えそうな気がしています(特に太平洋側の地域が…)。気を付けていきたいですね。

さて、本題です。今回はLinux向けに提供されているWebコンソールの「Webmin 1.8.60」でハマってしまった話です。珍しく、Windowsの話題に絡まない内容です。

ownCloud / NextCloud を試そうとした

ownCloud / NextCloud とは

読者の皆さん、「OSS」という単語を知っていますか。「OSS」とは、「Open Source Software」の略で、細かい定義を抜きにして説明するならば、基本的には、「プログラムコードは公開されていて、改善するためのコードを誰でも追加・変更してOK。でも不特定多数に使わせるために変更・追加したのなら、変更・追加したコードも公開してね!(そのまま良かったら本家に取り込むかも!一応、一定の条件を満たせば個人でも商用でも無償利用していいよ!ただし、自己責任でね!」というスタンスで提供されているものです(これはあくまで基本的なルールであり、個人利用ならばこの程度の理解で構いませんが、厳密に言えばソフトウェアごとに細かいルールは異なりますので、商用利用する際には個別にライセンスを確認しましょう)。

ついこの前のことですが、お客様の案件で、「組織内のファイル共有で扱いやすいものはないか。SharePointは管理が大変だからやめたい。」という要望がありました。
そこで、ownCloud / NextCloud という OSS の使い勝手を試そうとしました。ownCloud / NextCloud によって、OneDrive for Business的なものを、自分が管理するLinux環境に作れます。ユーザーはクラウドストレージのような操作感でファイルを管理でき、管理者がストレージをオンプレミス or IaaS で管理することが可能です。ファイルの実態はLinuxサーバーに接続されたディスク内にありますので、必要に応じて管理者がデータを救出することが可能であったり、ディスクを追加していくだけで実質無制限にファイルを保存することが可能になります。管理者が保管場所を把握できるため、「得体の知れない場所にファイルを置きたくない」と言ったニーズに応えられるかもしれません。ちなみに、ownCloud から開発分岐したものが NextCloud です。基本的な機能は変わりませんが、NextCloud のほうが無料の範囲では拡張性に優れています。
ownCloud / NextCloud にデメリットがあるとすれば、オンプレミスならばハードウェア・OS・モジュールの管理が、IaaS ならばOS・モジュールの管理が自己責任になることくらいでしょうか。

なお、OneDrive for Businessのようなクラウドストレージは、ユーザー数で課金となりますが、ownCloud / NextCloud の場合は、ユーザー数ではなく、オンプレミスならば電気代とディスクの購入費が、IaaS ならばクラウドのVMやディスクの利用料が掛かることになります。「1人当たりの消費容量は少ないけれど、利用人数は多い」と言ったときに、ランニングコストを抑えられるかもしれません。

Webmin について

自分専用の ownCloud / NextCloud を立ち上げるにあたり必要なものが、Linux環境への各種連携モジュールのインストールです。また、いくつかの設定値を変更する必要があります。基本的にLinuxでの設定はCUI(コマンド操作)で実施することになりますが、全部コマンドで設定しようとすると結構大変なものです。補助するツールとして、「Webmin」というものを入れると、Webブラウザ経由でそのあたりの設定がGUIで行えるようになります。

非常につまらないことでハマった

はじまりはWebminのバグ

最近のバージョンでWebminのUIが大きく変わったようですが、新しいUIから古いUIテーマに戻すオプションも用意されています。なんとなく古いUIのほうが見やすいかなと思い、adminを古いUIテーマに戻しました。そして、adminを無効化するために、新しいWebminユーザーを作成し、全権限を新しいユーザーに付与しようとしました。adminを先に古いテーマに戻したことが大きな間違いでした。実はこの古いテーマに重大なバグが残っていたのです

その重大なバグというのは、「折りたたまれた設定項目を展開することができない」というものです。中身を開けないということは、その中にある設定項目を一切触れないということになります。これでは全く役に立ちません。

新しいユーザーに権限を付与するためには、この折りたたまれた設定項目を展開しなければなりませんでした。更に悪いことに、テーマを戻す項目も折りたたまれて到達できません
メニューをクリックしても開かない。ブラウザを変えてもやっぱり開かない。新しいユーザーには設定する権限がない。admin以外で設定できるユーザーはいない。さて困ったぞ。」と。


(古いテーマでは赤枠のようなところが一切開けません)

解決法

幸い新しくWebminユーザーを作ること自体は、メニューが初めから展開されている項目だけで可能でした。まずは、adminでログインし、新しくWebminユーザーを作成します。権限は付与できないので、そのままにしておきます。ここでは、「test」という名前でユーザーを作成したとします。

次に、SSH接続します。[/etc/webmin/webmin.acl]というテキストファイルをお好きなエディタで編集します。右も左も分からないような初心者なら、エディタはviではなくnanoを選択すると操作が楽です。
[test:]という行があるので、[webmin]と追記します。すでに「:」の後に何かが記載されている場合は、スペースを挿入してから末尾に追記してください。

これで、新しい「test」ユーザーでWebminユーザーの設定が可能になったかと思います。新しく作成されたユーザーは、通常新しいテーマが設定されているため、このバグを回避できます。「test」でログインし、「Webminユーザー」の設定から「admin」のテーマを戻せるかと思います。

「admin」で再ログインすると、新しいUIに戻り、すべての設定ができるように戻ったかと思います。

回避策

  • 古いUIテーマの利用をしばらくは避けてください。特に、全体の設定で古いUIテーマにすることは絶対に避けてください。新しいUIでバグを回避できるためです。
  • 適当なグループを作成し、そこに全権限を付与することで、新しいユーザーを追加する際に、権限付与する操作がグループ指定だけで済むようになります。このグループ指定も初めから展開されているメニューに含まれますので、古いUIテーマでもバグを回避できます。
  • 最強の回避策は我慢して新しいUIに慣れること!!

まとめ

設定項目を展開できないだけ」という非常につまらないバグですが、時に致命傷となり得ることを実感しました。

普段はWindowsしか使っておらず、忘れたころにLinuxに触る程度だったので、解決策を探るのに少し時間が掛かってしまいました。若干焦ったものの、無事解決できた時にはちょっとホッとしました。

ちょっとしたバグ、皆さんも気をつけましょう。