Ubuntu 20.04 LTSの自宅サーバーを建てた時のメモ

この記事は最終更新日から1年以上が経過しています。情報が古くなっている可能性があります。

Ubuntu 20.04 LTS の自宅サーバー(自作 PC)を建てたのでメモ…(書き途中)
何やったか忘れそうになるのでメモ書き。あまり参考にはならないと思います。

あまり知識もないのと殴り書きなので正確性を欠いている可能性があります。ご注意ください。
一応サーバー機ではあるものの、せっかくの GUI 環境なのでなるべく GUI からインストールや設定を行うようにしています。

一度諸事情で再インストールする羽目になったので、この記事書いててよかったなーってなりました(一度やってるのもあるだろうけど 4 〜 5 時間で全部設定できた)
あくまで我流のサーバー構築のメモ書き(後から何やったか分からないと色々困る)なので、ここに書いてある情報はベストプラクティスとかではありませんし、用途に合わせ適宜取捨選択してください。
不正確だったり古い情報が含まれているかもしれませんし、用途によっては不要なソフトもあるでしょう。Ubuntu 、特に GUI 周りに精通しているわけでもありません。
あまり自宅サーバー要素がない…
  1. Ubuntu のインストール
    1. ISO イメージをダウンロード
    2. ISO イメージを USB メモリに焼く
    3. インストール前の注意
    4. USB 版 Ubuntu を起動する
    5. Ubuntu をインストールする
  2. セットアップ
    1. Google Chrome をインストールする
    2. ディスプレイの拡大率を上げる
    3. ディスプレイの電源が自動でオフになるまでの時間を延長する
    4. ブランクスクリーン後に自動でロックされるのを防ぐ
    5. 日本語を入力できるようにする
    6. 右クリックメニューから空のファイルを作成できるようにする
    7. アイコンテーマ Paper を導入する
    8. GNOME Tweaks をインストールする
    9. GNOME Tweaks の設定
      1. ウインドウ
      2. フォント
      3. 外観
      4. 拡張
    10. GNOME をダークモードにする
    11. GNOME Shell 拡張機能をインストール
    12. GNOME の Aero Snap みたいな機能で 1/4 分割できるようにする
    13. GNOME を完全にダークモード化する
    14. 時計の : の幅が太い問題を改善する
    15. Ubuntu Japanese Team のリポジトリを追加する
    16. ログイン(ログオン)画面の背景を変更する
    17. ファイル (Nautilus) でフォルダを管理者 (root) 権限で開けるようにする
    18. Ubuntu 起動時に HDD を自動マウントする
    19. Synaptic パッケージマネージャをインストールする
  3. ソフトのインストール
    1. GIMP
      1. インストール時の注意
    2. HardInfo (System Profiler and Benchmark)
    3. Ubuntu Cleaner
      1. インストール方法
    4. Visual Studio Code (VS Code)
      1. インストール時の注意
    5. VLC Media Player
  4. ターミナルからインストール
  5. Webmin のセットアップ
    1. Webmin のインストール
    2. Webmin の設定
    3. プロセスマネージャーが正しく動作しない問題を修正する
  6. Samba のセットアップ
    1. Samba のインストール
    2. Samba の設定
      1. Samba ユーザーを作成
      2. プリンター共有を無効にする
      3. ファイル共有を作成
      4. アクセス制御を編集
      5. Samba サービスの再起動
      6. 「アクセスが拒否されました」と出る場合
  7. ufw (Gufw) のセットアップ
  8. xrdp のセットアップ
    1. 日本語キーボードの配列を追加
    2. xrdp サービスを再起動
  9. SSHD のセットアップ
  10. Apache のセットアップ
  11. PHP のセットアップ
  12. Apache の設定
    1. 関連
Sponsored Link

Ubuntu のインストール

ISO イメージをダウンロード

Ubuntu Japanese Team 公式 から Ubuntu 20.04 LTS Desktop 日本語 Remix の ISO ファイルをダウンロードします(約 2.5GB・回線にもよるけどそれなりの時間がかかる)。
サーバー用途ですが Ubuntu Server はデフォルトで GUI 環境が入ってないくらいの差らしいこと、デスクトップ版の方がインストールしやすそうなことからこの記事では Ubuntu Desktop をインストールします。

Ubuntu 公式 からもダウンロードできますが、日本語 Remix は日本語の環境に最適化されているので、こだわりがなければ日本語 Remix をインストールすることをおすすめします。

後から日本語 Remix イメージ同等の Ubuntu にすることも可能です(後述)
サーバー用は GUI 環境がないほうがいいという話もありますが、そこまで低スペックなマシンでもない(Core i5-9400 RAM8GB)ので心配なさそう

ISO イメージを USB メモリに焼く

ISO イメージをダウンロードしただけでは当然 SSD にインストールできないので、4GB 以上ある USB メモリに Ubuntu の ISO イメージを書き込み、ブータブル USB メモリにします(焼くとも)
これを Ubuntu をインストールしたい PC に差すと USB 版 Ubuntu が起動します。

USB メモリに焼くソフトは rufus がおすすめです。高速でかつかなりブータブル USB メモリを簡単に作成できます。
UNetbootin とかもありますが、rufus の方がよきに計らってくれるし簡単なので使う理由はないです…

CD に焼くこともできるけど CD-R がもったいないし面倒だしメイン PC に CD/DVD ドライブがついてないので…
「このイメージは Syslinux 6.03/(日付) を使用しますが〜」といったダイヤログが出ることがありますが、「はい」をクリックしてください
「Syslinux は Linux カーネルを起動させるためのブートローダのことで、作成する Linux ディストリビューションによって使う Syslinux のバージョンが異なるため Rufus で実装されているもの以外が必要になったときに出てくる(引用)」だそうなので、深く考える必要はありません

インストール前の注意

  1. (かなりレアケースだろうけど)私の場合 Windows が入ったいらない HDD をマシンに適当に差した状態でインストールするとブート EFI パーティション(/boot/efi)がいらない HDD の方に入ってしまい再インストールする羽目になったので、その場合は予め後述の USB 版 Ubuntu に入っている GParted で Windows のパーティションを全部消してから Ubuntu をインストールするようにすること
    • Ubuntu 本体は SSD に入っているがブートは HDD から行われているというめんどくさい状態…
    • Windows も含め、接続している SSD・HDD 内に既に OS(またはその残骸)が残っている場合は、USB 版 Ubuntu に入っている GParted で一度全部削除してからインストールした方が無難だと思います(OS が他に入った状態でインストーラーを実行すると変な構成になることがある)
  2. 起動ドライブにしたい SSD とは別に HDD を色々繋げてる場合、起動ドライブを SATA0 に接続しないと認識の順番がずれてちょっと面倒なことになるので順番通り接続すること
    • Linux では C:\ ドライブ D:\ ドライブ のような概念がなく /dev/sda1 /dev/sdb1 … のようにマウントされるので、メインドライブを SATA0 にしておかないと順番がめちゃくちゃになるっぽい…?
    • マウントし直す事もできるだろうけど面倒そうなので最初から順番通りつけるのが早そう

USB 版 Ubuntu を起動する

USB を差した状態で BIOS (UEFI) を起動、起動デバイスの優先順位で USB を一番上にして変更を保存し、再起動すると USB 版の Ubuntu が立ち上がります(立ち上がらなかったら何かがおかしいです)。

Try Ubuntu と Install Ubuntu がありますが、一度 Try Ubuntu をクリックしてからの方がよさそう(なんとなく)
Try Ubuntu した後でもデスクトップにある「Ubuntu 20.04 LTS のインストール」というアイコンをクリックするとインストール作業を行えます。

Ubuntu をインストールする

前述の通り、接続している SSD・HDD 内に過去に使っていた OS が入っている場合は GParted で削除してまっさらな状態にしてから、デスクトップの [Ubuntu 20.04 LTS のインストール] をクリックし、インストーラーを起動します。

インストーラーの言語は日本語に設定します。

言語を日本語に設定するとキーボード配置も日本語で設定されるので、特殊なキーボードでない限りはこのまま進めます。

[グラフィックスと Wi-Fi ハードウェアと追加のメディアフォーマットのサードパーティー製ソフトウェアをインストールする] にチェックを入れて進みます。

今回は空の SSD にインストールするので、[ディスクを削除して Ubuntu をインストール] を選択します。
既に OS が入っている場合は画面が変わってきますが、ここでは割愛します。
[それ以外] を選択するとパーティションの構成などを自分で設定できますが、詳しい人以外はあまり触らない方が無難な気がします。

Ubuntu をインストールする SSD・HDD を選択します。
接続している SSD・HDD が一つだけの場合はこの画面自体が出ないかもしれません。

[続ける] をクリックすると、選択したディスクに Ubuntu のインストールが開始されます。
複数 SSD・HDD を接続している場合はインストール先が正しいか確認しましょう。

ロケールを訊かれます。インストーラーを日本語で実行している場合はすでに Tokyo になっているので、そのまま進めます。

もし大阪に住んでいる場合も Tokyo になります(日本のロケールが Asia/Tokyo なので)

コンピューターの名前、ユーザー名、パスワードを設定します。
パスワードは間違えてタイプしたり忘れると再インストールすることになる(一度やらかした)ので、慎重に設定しましょう…

あとはインストールが終わるまで待つだけです。
インストールは数十分程度で終わります。

インストールが終わるとこのように表示されるので、再起動します。
その後「Please remove the installation medium, then press ENTER:」と表示されるので、USB メモリを外してから Enter キーを押し、再起動します。

再起動後、ログイン画面が表示されれば OKです。先ほど入力したユーザー名とパスワードでログオンします。
オンラインアカウント云々など色々出てきますが、今はスキップしましょう。あとでも設定できます。
その後、「Ubuntu 20.04 LTS のリリース後にソフトウェアがアップデートされました」とソフトウェアアップデートを求められるので、インストールしておきましょう。
ソフトウェアアップデートが終わると、再起動を求められます。再起動してもう一度ログオンすれば、Ubuntu のインストールは完了です。

Sponsored Link

セットアップ

無事インストールできたので、セットアップを行います。
順序が謎だけどゆるして…(一部ダークモードになっているのは項目を書く順番が前後しているためです)
Ubuntu 20.04 LTS をインストールした後やること12選 をかなり参考にさせてもらっています(圧倒的感謝)

Google Chrome をインストールする

何かしら調べ物をするにはブラウザが欠かせません。
Ubuntu にはデフォルトで Firefox がインストールされていますが、私はいつも Chrome を使っているので、まずは Chrome をインストールしてみます。
ただし、Chrome のもとである Chromium はオープンソースですが Chrome 自体はプロプライエタリのため、apt や Ubuntu Software からはインストールできません。そのため、Windows のときのように普通にネットからダウンロードしてくることになります。

Chromium は何故か本家 Chrome よりも更新が遅いのとアイコンに違和感があるのでできれば避けたい(なければ Chromium でもいいけど)

Firefox で Google Chrome のサイトにアクセスし、ダウンロードボタンをクリックします。
Debian/Ubuntu 用の .deb パッケージが選択されているので、そのまま「同意してダウンロード」をクリックし、Chrome をダウンロードします。

.deb はパッケージファイルで、この中にインストーラーやソフトウェアの中身が入っています(macOS で言う .dmg 、Android で言う .apk に近いかも)

ダウンロードが終わったらダウンロードフォルダを開き、google-chrome-stable_current_amd64.deb を右クリック → [別のアプリケーションで開く] → [ソフトウェアのインストール] を選択します。
そのままダブルクリックで開いてしまうとアーカイブマネージャーが立ち上がってインストールできないためです(.deb パッケージは圧縮形式の形になっているらしくデフォルトではアーカイブマネージャーが関連付けされてしまっているらしい…)。

ソフトウェアのインストールを開くとこのような画面になるので、画面の指示にしたがってインストールします。
インストール時に自動で自動更新用の apt リポジトリが追加されるらしいので、アップデートの問題を心配する必要はなさそうです。

インストールできたら左下の「アプリケーションを表示する」から Chrome を起動できます(アイコンを右クリックで左のバーに追加できます)。
あとは Google アカウントにログインするなり適当に…

ディスプレイの拡大率を上げる

私は 1920×1200 のディスプレイに接続して作業をしていますが、そのままでは画面が小さく感じます。
Ubuntu 20.04 からちょうど今まで 100% か 200% しか選べなかったディスプレイの拡大率が 125%・150%・175% も選べるようになったので、今回は 125% に設定します。

設定アプリを開き、[ディスプレイ] → [任意倍率のスケーリング] をオンにします。
まだベータ版だからか、デフォルトではオフになっています。

オンにすると [サイズ調整] の項目に 125%・150%・175% が追加されるので、好きな倍率に設定しましょう。
右上の適用ボタンをクリックすると反映されます。

[任意倍率のスケーリング] 機能は Ubuntu 20.04 LTS で追加されたベータ版的なものらしく(一応正式版ではあるものの不安定らしい)、現時点では動きの大きい動画を再生すると描画が間に合わずに描画がズレる現象が起きることがあります(消費電力の増加・速度の低下・ディスプレイのシャープネスの喪失などが生じる可能性が… と書いてありますね)。
その他、一部のソフトで正しく描画されないこともあります。たとえば、Shotwell では 125% に設定すると画像がぼやけて描画されたり、Mozc の設定ウインドウも 125% だとフォントのみ大きくなってしまい文字が潰れたり…
私は 125% にできる恩恵の方が大きかったのでオンのままにしていますが、どうしても気になるようであれば 100% のほうがいいかもしれません。今後のアップデートでの描画品質の向上に期待します。
私の環境の場合、Ubuntu の初回アップデート後に再起動すると、任意倍率のスケーリングが使えなくなってしまいました(125% に指定するとウインドウは拡大されずに画面が 1.25 倍分拡大されて右上の電源とかがあるメニューが押せなくなる)。
どうやら NVIDIA 公式のドライバーをインストールした状態で画面出力を Intel Graphics から行っているのが原因のようで、ドライバーをオープンソースの nouveau に変更したら直りました。
GPU は一応載せているものの今の所使う予定はないので、しばらくこのままにするつもりです…
(GPU から画面出力していないのは GPU が DisplayPort と DVI 端子しかない(HDMI がない)というしょーもない理由なので、近々変換端子でも買おうかな)
GNOME Tweeks(後述)→ フォント → 倍率 を 125% にしたいなら 1.25 のように変更し、設定 → 外観 → Dock → アイコンのサイズ を 48 から 60 (48×1.25=60) にすると 125% にスケーリングしているのとほぼ同じような画面にできます。
文字のマージンが少なくなったりする副作用はありますがあまり気にならないと思います。

ディスプレイの電源が自動でオフになるまでの時間を延長する

設定 → [電源] → [省電力] → [ブランクスクリーン] から変更できます。
デフォルトは [5分] になっていますが、短いので [15分] や [しない] に設定しておきます。

ブランクスクリーン後に自動でロックされるのを防ぐ

デフォルトではブランクスクリーンからの復帰後はロックされるようになっているので、必要ない場合はオフに設定します。設定 → [プライバシー] → [画面ロック] → [自動画面ロック] から変更できます。

日本語を入力できるようにする

Ubuntu のインストール時に日本語入力もインストールされるのですが、何故か最初は Mozc ではなく「日本語」とだけ書かれた IME が使われるようになっています。
右上のアイコンから [日本語 (Mozc)] を選択すればあとは普通に入力できます。

Mozc は Google 日本語入力のオープンソース版なので、Windows や Mac でつかっている人は違和感なく使えそうです

右クリックメニューから空のファイルを作成できるようにする

Windows だと右クリックから作成できる空のファイルですが、意外に GNOME ではデフォルトでは用意されていないようです。端末を開き、

touch ~/テンプレート/空のドキュメント

のように実行し、テンプレートフォルダの中に空のファイルを入れておきます。

こうすることで、右クリックメニューから空のファイルを作成できるようになります。

アイコンテーマ Paper を導入する

デフォルトの Yaru アイコンは悪くないのですがそこまで好みでもないので、アイコンテーマを Google Material Design 風の Paper icon theme に変えてみます。

Papar の公式サイト にアクセスし、アイコンテーマのパッケージをダウンロードします。
ダウンロードページにはリポジトリを追加して…と書いてありますが、Ubuntu 20.04 の環境ではサイト上にリポジトリが存在しないとかでエラーになってしまったので、Debian 向けの .deb パッケージを [Paper Icons] ボタンからダウンロードします。

ダウンロードが終わるとこのような警告が表示されることがありますが、続行します。

Ubuntu と Debian は同じ系統なので、強く OS に依存するソフト以外は共通のパッケージが使えるみたい

ダウンロードが終わったらダブルクリックで実行し(Chrome のインストール時に [ソフトウェアのインストール] から開いたので既定で選択されているはず)、Ubuntu Software が開くのでインストールします。

2020 年 8 月現在では、ターミナルからインストールできるようになっています。

sudo add-apt-repository -u ppa:snwh/ppa sudo apt install paper-icon-theme

上記のコマンドを実行すると、Paper アイコンテーマをインストールできます。

GNOME Tweaks をインストールする

先ほどアイコンテーマをインストールしましたが、それだけではアイコンテーマを変更することはできません。GNOME Tweaks(旧称:GNOME Tweak Tool)というツールをインストールする必要があります。
コマンドラインでもインストールできますが、折角なので Ubuntu Software からインストールしてみます。

tweaks は「微調整」という意味らしい

Ubuntu Software の左上の検索アイコンに「Tweaks」と入力すると Tweaks が出てきます。

クリックすると詳細画面になる(アプリストアっぽい画面)ので、インストールボタンをクリックしてインストールします。
Ubuntu Software は apt・snap パッケージマネージャーの GUI フロントエンドのようです。
パッケージマネージャーだとソフトを探すのが面倒なので、その点は Ubuntu Software からの方が楽かもしれません。

Ubuntu は snap を推しているらしく、snap 版が用意されている主要なパッケージは apt ではなく snap でインストールされます。
snap が好みかどうかは人次第ですが、低速なマシンを使っている場合は起動に時間がかかったり重くなることがあるようです(パッケージを Docker みたいなコンテナの中の仮想環境で実行するものらしいので当然ではある)。
ただし、snap のほうが環境を汚さないので依存関係の問題が発生しにくいというメリットもあります。
後述しますが、snap ならうまくいく場合、apt のほうがうまく行く場合と両方存在するので、どちらがいいかは一概に言い切れません。

GNOME Tweaks はユーティリティの中に含まれている(落とし穴)ので、そこから起動します。

GNOME Tweaks の設定

私がいじった設定だけ貼っておきます。

ウインドウ

  • モーダルダイヤログを親ウインドウに結びつける:オフ
    • いろいろめんどいので
  • 新しいウインドウを中央に表示する:オン
    • 毎回左上に表示されても困る
追記:私の環境だといつのまにかウインドウ位置が保存されるようになっていたので、「新しいウインドウを中央に表示する」に関してはオフのほうがいいかもしれません。
ただし、「ファイル」(Nautilus)や「端末」アプリでは保存されず常に中央に表示されるみたいです(?)

フォント

  • アンチエイリアス:標準(グレースケール)
    • このあたりは好みやディスプレイによる気がします
    • 高解像度なディスプレイではグレースケールのほうがきれいですが、低解像度なディスプレイの場合はサブピクセルのほうがいいかもしれません

外観

  • アイコン:Paper に変更
    • ここでアイコンテーマを選択できます
    • デフォルトでいくつかほかにも入ってる

アイコンを変えるとこんな感じになります。
それなりに良さそうなのでしばらくこれで運用してみます。

GNOME Shell の部分は GNOME Shell の拡張機能、User Theme をインストールすると選択できるようになるみたいです(後述)。

拡張

GNOME Tweaks は GNOME をカスタマイズするためのツールですが、GNOME Shell(GNOME 本体)の拡張機能を追加することでさらにカスタマイズができるようになります。
デフォルトでインストールされているのは3つですが、下2つはダミーみたいなので実質 Desktop Icons だけです。

Desktop Icons ではデスクトップアイコンのサイズやホームフォルダ・ゴミ箱を表示するかどうか選択できます。
アイコンサイズは標準とかでもいいかも…?

GNOME をダークモードにする

Ubuntu 20.04 にはダークモード(暗いテーマ)が実装されているので、変更してみます。

設定 → [外観] より、暗いテーマを選択すると自動でウインドウの色が暗くなります。
VLC といった一部のアプリは白いままかもしれませんが、少なくともデフォルトでインストールされているアプリに関しては大丈夫そうです。

しかし、そのままではメニューなど一部白いままの箇所が出てきてしまいます。
これを直すためには、先ほどの GNOME Shell 拡張機能、User Themes をインストールする必要があるようです。

GNOME Shell 拡張機能をインストール

GNOME Shell 拡張機能はダウンロードしてインストールすることもできますが、現在はブラウザから GNOME Shell 拡張機能をインストールする方法が主流になっているようです。
今回は先ほどの User Themes と、上部のメニューバーから拡張機能をオンオフできるようにする Extensions(という名前の拡張機能・紛らわしい)をインストールします。

デフォルトでは Firefox のみの対応になっている(Chrome でもできるが他の端末と同期しているといらない拡張機能が増えてしまう)ので、Firefox を使ってインストールしていきます。

Firefox で GNOME Extensions のページを開きます。
「このサイトで GNOME Shell 拡張機能をコントロールするには…」と表示されるので、「ここをクリックしてブラウザー拡張機能をインストールしてください」から GNOME Shell 拡張機能を Ubuntu にインストールするための Firefox アドオンをインストールします(ややこしい)。

リンクをクリックするとポップアップが出るので、[インストールを続行] します。

許可を求められるので [追加] をクリックするとアドオンを追加できます。
これで GNOME Shell 拡張機能をブラウザからインストールできる状態になりました(このあたりを理解するのにちょっと戸惑った)。

User Themes をクリックすると OFF と書かれたスイッチがあるので、これをクリックして ON にします。

ダイヤログが表示されるので、[インストール] をクリックすると拡張機能のインストール・有効化は完了です。
同様の手順で Extensions 拡張機能もインストールしてみましょう。

再び Tweaks を開き、[拡張機能] タブに User Themes と Extensions が追加されていれば OK です。
ほかにもよさげなものがあればインストールしてみるとよいでしょう。

GNOME の Aero Snap みたいな機能で 1/4 分割できるようにする

GNOME には edge-tiling という Windows でいう Aero Snap(ウインドウを画面の隅に持っていくと 1/2 や 1/4 に分割できたりするやつ)みたいな機能がついているのですが、標準では左右の 1/2 分割しか対応しておらず、四隅に持っていっても 1/4 分割はできません。

ちょっと調べたところ、ShellTile という拡張機能をインストールするだけで 1/4 分割もできるようになるみたいです。先ほど同様にリンクを Firefox で開いて、拡張機能をインストールしてみましょう。

インストールして画面の四隅にウインドウを持っていくと、画面を 1/4 に分割できるようになっているはずです。
この他にも、Ctrl キーを押しながらウインドウを他のウインドウに持っていくとそのウインドウと上下または左右で 1/2 分割できたりと、なかなか便利です。

GitHub いわく Wayland には完全に対応できていないようなので Wayland をつかってる方は注意

GNOME を完全にダークモード化する

設定から暗いテーマを選択しただけでは、メニューやカレンダーなど一部の項目が白いままになってしまいます。
先ほど User Themes 拡張機能をインストールしたことで GNOME を完全にダークモードにすることができるようになりました。設定してみます。

Tweaks → [外観] を開くと、今まで選択できなかった GNOME Shell の項目が選べるようになっています。
GNOME Shell を [デフォルト] から [Yaru-dark] に変更すると、GNOME が完全にダークモード化されます。

アップロードアイコンがあるように、テーマは自作したり配布されているものをインポートすることもできるみたいです
配布されているものをいろいろ試してみてもいいと思います

右上のメニューやカレンダーも暗いテーマになっています。

ちなみに、先ほどいれた Extensions 拡張機能はトップバーの @ アイコンをクリックすると拡張機能のオンオフができるようにするための拡張機能です(今の所使いみちがわかりませんが一応)。

また、「拡張機能」というアプリもあり、こちらはデフォルトでインストールされているようです。
機能は Tweaks の [拡張機能] タブと代わりありませんが、Tweaks とは異なりテーマを変えるといった機能はありません。

一度は Yaru-dark に設定したものの、配色が紫とオレンジなのが気に入らず、結局 Materia-Theme (Dark) に落ちつきました
マテリアルデザインな UI になって波紋のアニメーションもあって良いとおもいます(おすすめ)

時計の : の幅が太い問題を改善する

Ubuntu 20.04 LTS では、時計の : の幅が何故か太くなってしまっています。
その他にも日本語文字の下部分が切れるなど、いくつか日本語表示に関する問題があるようです。
これらの不具合は Ubuntu 20.10 で改善予定だそうですが、こちらのサイト で公開されているフォントをインストールすることで正常に表示されるようになります。

https://bugs.launchpad.net/ubuntu-jp-improvement/+bug/1864297 にて Issue が立てられています
わざわざ開発の方に掛け合って修正が Merge されたようでありがたい限りです(コロンに対する情熱に感動した)

fonts-nt0ui-jp_1_1all.deb をダウンロードし、Chrome の時と同様にダブルクリックでソフトウェアのインストールを開きます。

インストール後、時計の : が半角 になっていることが確認できれば OK です。
うまく適用されない場合は再起動してみましょう。

Ubuntu Japanese Team のリポジトリを追加する

Ubuntu では Windows 環境で作成した(おそらく Shift-JIS の)Zip ファイルが文字化けして正常に解凍できないなどの日本語に関連する不具合があるようです。
不具合を修正したパッケージを Ubuntu Japanese Team の方たちがリリースしてくれているので、もし日本語 Remix ではない普通の Ubuntu を使っている場合は、別途インストールしておきましょう(日本語 Remix の Ubuntu を利用している場合はすでにインストールされています)。

公式サイト 曰く、「他の言語環境に悪い影響を与えてしまう変更が必要であるなどの理由で、現段階ではオリジナルのUbuntuに含めることが難しい修正が必要な場合もあります。 そこでJapanese Teamでは、現在のところUbuntuに追加できていない修正を加えたパッケージ、および日本語環境に必要とされるパッケージを収録したRemixイメージを作成・配布しています」とのこと。
本来は最初から日本人向けの Remix イメージをインストールするのが手っ取り早いのですが、私が最初にインストールした 2020/05/05 時点では日本語 Remix がリリースされていなかったため、敢えて素の Ubuntu のイメージを利用しました。
Remix イメージに追加されているパッケージは単体でも配布されているので、Ubuntu Japanese Team のリポジトリを追加して ubuntu-defaults-ja パッケージをインストールすれば Remix イメージと同等の Ubuntu になります。
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add - 
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add - 
sudo wget https://www.ubuntulinux.jp/sources.list.d/focal.list -O /etc/apt/sources.list.d/ubuntu-ja.list 
sudo apt update -y && sudo apt dist-upgrade -y 
sudo apt install ubuntu-defaults-ja 

端末を開き、上記のコマンドを順々に入力・実行します。
これらのコマンドを実行することで Ubuntu Japanese Team のリポジトリが追加され、日本語環境用のパッケージが依存関係も含めてインストールされます。

apt-key コマンドは、標準で登録されているリポジトリ以外からパッケージをインストールしたい場合に必要な鍵情報を登録するためのコマンドです(正しいファイルかどうか、改ざんされていないかを確認するためのものらしい・これを登録しないとデフォルトではインストールできないようになっている)。
今回はネットからダウンロードしてきた GPG 鍵を wget コマンドでダウンロードし、結果を標準出力に流してパイプで後ろの apt-key コマンドで受け取っています。
Ubuntu の場合は ppa というコミュニティリポジトリみたいな仕組みもあり、こちらは add-apt-repository という別のコマンドで追加できるようです(よく理解できていない…)。

ログイン(ログオン)画面の背景を変更する

ログイン画面の背景は通常紫一色になっていますが、これを画像に変更してみます(参考)。
Ubuntu 20.04 用に背景画像を変更するためのスクリプトが公開されているので、それを使います。

ターミナルを開き、libglib2.0-dev-bin をインストールします。

sudo apt install libglib2.0-dev-bin

その後、スクリプトをダウンロードし、実行ファイルとして設定します。

cd ~/
wget github.com/thiggy01/ubuntu-20.04-change-gdm-background/raw/master/ubuntu-20.04-change-gdm-background
chmod +x ubuntu-20.04-change-gdm-background

これで実行できる状態になりました。
Ubuntu の壁紙は /usr/share/backgrounds/ にあるので、今回はデフォルトで用意されている warty-final-ubuntu.png に変更してみます。

sudo ./ubuntu-20.04-change-gdm-background /usr/share/backgrounds/warty-final-ubuntu.png

壁紙を正常に変更しました。GDM(GNOME ディスプレイマネージャー)を再起動しますか?(英訳)と訊かれるので、y を入力します。

GDM background sucessfuly changed.
Do you want to restart gdm to apply change?
(y - yes, other keys - no): 

GDM の再起動後(画面が暗転したあと)、ログイン画面が表示されます。
ここで背景がライオン(?)になっていれば完了です。
/usr/share/backgrounds/warty-final-ubuntu.png の部分を好きな画像に変えてみてもいいと思います。

アップデートのタイミングで戻ってしまうこともあります。そのときはもう一度実行しましょう。

ファイル (Nautilus) でフォルダを管理者 (root) 権限で開けるようにする

Ubuntu (GNOME) のファイルマネージャーは Nautilus ですが、Nautilus はフォルダを 管理者権限(root 権限)で開くことができません。
これでは /etc/ 以下にある設定ファイルを直接いじるときなど、何かと不便です。

Ubuntu 20.04 では Nautilus は 「ファイル」という名前になっていますが以後 Nautilus で統一します

そこで、フォルダを右クリックしたときに「Open As Administrator」という項目を追加するプラグインをインストールします。ターミナルから、

sudo apt install nautilus-admin
nautilus -q

と実行します。

nautilus -q では Nautilus を一旦終了させています

何かフォルダを右クリックしてみて、Open As Administrator と表示されていれば OK です。
Open As Administrator をクリックすると、パスワードの入力を求められた後、フォルダが管理者権限で開きます。

同様にファイルを右クリックすると Edit As Administrator と表示されますが、クリックすると必ず Gedit (GNOME 標準のテキストエディター) で開く機能のため、あまりおすすめしません(別のエディタに関連付けされているファイルや画像ファイルでも Gedit で開いてしまう)。
VS Code であれば管理者権限で開かなくてもファイルの保存に失敗した場合に管理者権限で保存できるので、あまり支障はないような気がします。

Ubuntu 起動時に HDD を自動マウントする

Ubuntu が起動した際に、(私の場合)2台接続している HDD を自動マウントできるようにします(参考)。
コマンドで設定する方法の方がメジャーなようですが、今回は「ディスク」アプリから設定します。

2台の HDD のうち、6TB の HDD の方はあらかじめ 3TB と 3TB にパーティションを分割しています(1つが NAS(ファイル共有)用、もう1つがアプリケーション用)

「ディスク」を開き、設定アイコンから「マウントオプションを編集」をクリックします。

デフォルトではこのような状態になっています。

「ユーザーセッションのデフォルト」をオフにし、編集できる状態にします。
次に、識別名を UUID= に変更したあと、マウントポイントを /mnt/(好きな名前)/ に変更します。

マウントポイント名に大文字は使えません(厳密には設定自体はできるが小文字化されるので無意味)

終わったら「OK」をクリックします。これでマウントオプションの設定は完了です。
自動マウントの実行は再起動後なので、手動でマウントしてみてマウントポイントが UUID から /mnt/(好きな名前)/ になっていれば完了です。

他のパーティションやディスクがある場合は、それらも同様に設定しておきましょう。

なお、初期状態ではマウントされたディスクは root でないと触れないようになっていることがあります。

sudo chown -R (一般ユーザーのユーザー名):(一般ユーザーのグループ名)  /mnt/

と実行して、一般ユーザー権限に設定しておきましょう。

root は特別なアカウントなので、所有者が別のユーザー / グループでも読込・書込・実行が可能らしい

Synaptic パッケージマネージャをインストールする

先程利用した Ubuntu Software はなぜか動作が不安定な上、snap でインストールされることがあったり、そもそも登録されているソフトが少ない(コマンドラインから実行するタイプのソフトはそもそもない)ので、なにかと不便なことがあります(コマンド叩けば済むけどせっかく Linux の GUI 環境があるわけだし…)。

というわけで、apt コマンドの GUI フロントエンドである、Synaptic パッケージマネージャを Ubuntu Software からインストールします(参考)。
インストール方法は GNOME Tweaks のときと同様に Synaptic と検索して出てきた「Synaptic パッケージマネージャ」をクリックして [インストール] ボタンをクリックするだけです。

ほかのディストリビューションだとだいたい入ってるっぽいんですが、Ubuntu Software があるからか Ubuntu には標準ではインストールされていません
あくまで apt のフロントエンドなので、Ubuntu Software ほど使いやすくはありません
どちらかというと玄人向けかも?

起動するとこんな感じです。

左側でカテゴリを選択し、右側でソフトのインストール・再インストールを指定します。
S のカラムの □(四角)が緑色になっているものがインストール済みのパッケージ、白になっているものが未インストールのパッケージです。

□ をクリックすると [インストール指定] と出てくるので、インストールしたいパッケージをインストール指定します。

依存により要求された変更を追加しますか?と表示されるので、[マーク] をクリックします。
これはインストールしようとしているパッケージが必要とするパッケージをインストールするか訊かれていて、 パッケージ自体は OS で共通なのでほかのパッケージにも影響があります(特に依存関係で衝突したときは最悪)。

めったにないとは思いますが、そういう依存関係のごたごたを解消するために snap が開発されています(コンテナ内で実行するので環境を汚さないらしい)。
ただし、仕組み上依存するパッケージをソフトごとにインストールするので、インストールサイズが大きくなるというデメリットもあります(ただしこれは Windows でもそうなのであまり関係ないかも)。

インストール予定のパッケージは(デフォルトのテーマの場合)オレンジで、インストール予定のパッケージが必要とするので一緒にインストールされるパッケージは黄緑で表示されます。
この時点ではまだインストールされていません。[適用] をクリックします。

「以下の変更を適用しますか?」と表示されるので、[適用] をクリックすると、インストールがはじまります。
インストールが正常に終われば完了です。
正直コマンド叩いたほうが早いので、あまり使う機会はないかもしれません。

ちなみに、Ubuntu(apt)のソフトウェアは

  • main … Ubuntu の開発元、Canonical がサポートしているソフトウェア
    • おもに GNOME 系のプリインストールされているソフトが大半です
  • universe … 開発コミュニティによってメンテナンスされるソフトウェア
    • Canonical の手が入っていないソフトウェアのほぼすべてが入ります
    • GIMP や VLC などなど、有名なソフトの多くは universe です
  • restricted … プロプライエタリ(ソースコード非公開)なデバイスドライバー
    • NVIDIA GPU の純正ドライバーや Wi-Fi カードのドライバーが該当するようです
    • Canonical が一応サポートしてるけど、不具合があったら開発元に問い合わせるしかない、といったソフトウェアが restricted になるみたいです
  • multiverse … ライセンスの関係上、フリーではないソフトウェアが該当します
    • apt に登録されているけど、無料で使えてもソースコードが公開されていなかったり、ソースコードは公開されているけれど独自の厳しいライセンスが適用されていたり…といったソフトウェアが該当します
    • nvidia 系のライブラリも multiverse です

にわけられ、それぞれインストール・アップデート対象にするか選択できるようになっています(参考参考)。
とくに理由がなければすべてチェックされている状態にしておきましょう([ソースコード] は字の如くソフトウェアのソースコードで、基本不要です)

(執筆中)

Sponsored Link

ソフトのインストール

私がインストールしたソフトを載せておきます(インストール方法は簡単なので割愛)

GIMP

言わずとしれたクロスプラットフォームの画像編集ソフトです(もともと Linux がメイン)。
起動も Windows 版と比べて圧倒的に早いです。

インストール時の注意

ちなみに、apt で GIMP をインストールすると任意倍率のスケーリングで利用している場合にアイコンサイズを最大に設定にしても大サイズのままに、一部のアイコンはさらに小さくなる不具合が発生します。
GIMP の Issues いわく、HiDPI のサポートが GIMP 2.10 は不完全であることが影響しているようです。GIMP 3 では修正されますが、GIMP 2.10 で修正するのは厳しいということで Close されています。

snap 版(Ubuntu Software からインストールすると snap 版になる)または flatpak 版の場合はこの不具合はなぜか発生しないようで、GIMP 3 がリリースされるまでは snap 版の GIMP を使うとよさそうです。

HardInfo (System Profiler and Benchmark)

Windows で言うところのデバイスマネージャー的なソフトです(参考)。ただし、設定の変更はできません。
アプリケーションメニューからは System Priofiler an Benchmark として表示されています。

Ubuntu Cleaner

Ubuntu 用のクリーナーソフトです。
apt のキャッシュなどの不要なファイルを一括削除できます。

インストール方法

Ubuntu Cleaner は公式リポジトリには入っていないので、ppa から追加した上でインストールする必要があります。

sudo add-apt-repository -y ppa:gerardpuig/ppa
sudo apt update && sudo apt install ubuntu-cleaner

Visual Studio Code (VS Code)

高機能エディタ(説明不要)
Electron 製なのでクロスプラットフォームなのがいいですねー

インストール時の注意

Ubuntu Software からインストールする場合は VS Code も snap でインストールされるようなのですが、
snap でインストールした Visual Studio Code には、IME(Mozc)が常に直接入力になってしまい日本語が入力できない、という致命的な問題を抱えています(参考)。
2018 年頃から発生しているようですが未だに修正されていないため、修正は半ば絶望的です…

Microsoft の VS Code 公式サイトから .deb ファイルをダウンロード → インストールすればこの問題は解決します。

.deb と書いてあるボタンをクリックし、パッケージをダウンロードします。
Chrome の場合「この種類のファイルはコンピュータに損害を与える可能性が〜」と表示されますが、「保存」をクリックします。
もしすでに VS Code を Ubuntu Software からインストールしてしまっている場合は、あらかじめアンインストールしておきましょう。

終わったら Chrome のときのように .deb ファイルを開き、「インストール」をクリックします。
インストールが完了し、日本語入力ができることを確認できれば OK です。
設定も以前のものを保持してくれるらしい…?

Ubuntu 用の VS Code では読みにくいフォントが指定されているので、VS Code の設定からフォントの設定を ‘Ubuntu Mono’, ‘monospace’, ‘Droid Sans Fallback’ のように変更すると良いと思います

VLC Media Player

クロスプラットフォームの多機能な動画プレイヤーです(GNOME 付属の動画プレイヤー Totem もあります)。
動画コーデックを一緒にインストールするからか、インストールが終わるまでにちょっと時間がかかります。

ターミナルからインストール

GUI ソフトは Ubuntu Software からインストールしましたが、コマンドラインから操作するソフトやライブラリは apt というパッケージ管理システムを使ってインストールします(Synaptic でもできるけど多くの場合コマンドからのほうが楽)。
今回は curl・git・ncdu・net-tools を一括でインストールしてみましょう。

ターミナルを開き、

sudo apt install curl ncdu git net-tools

のように実行すると、パッケージが(依存関係も含めて)インストールされます。

Webmin のセットアップ

Webmin は、Web ブラウザ上からサーバーの設定を変更したり、現在の状態を確認することができるダッシュボード的なソフトです。Webmin を入れておくと、別の PC から(設定によってはネットワーク越しから)、サーバーの状態を確認したり、サーバーに関する様々な設定を行うことができます。
また、GUI から設定できるため、基本的に設定ファイルを直接いじる必要のあるサーバー向けソフト(ex: Apache)の設定も簡単に行えます。入れておいて損はありません。

Webmin のインストール

ターミナルを開き、次のように実行していきます。
Webmin はなぜか apt のリポジトリには含まれていないので、手動でリポジトリと認証鍵を追加してからインストールします。

echo "deb http://download.webmin.com/download/repository sarge contrib" | sudo tee /etc/apt/sources.list.d/webmin.list
wget http://www.webmin.com/jcameron-key.asc -O - | sudo apt-key add -
sudo apt update -y && sudo apt upgrade -y && sudo apt install -y webmin

Webmin はインストールにわりと時間がかかります(ラズパイとかだと数十分とかかかったような…)。
インストールが終わったら、ブラウザから http://localhost:10000/ にアクセスすると Webmin にログインできる…はずですが、

Error – Document follows

This web server is running in SSL mode. Try the URL https://localhost:10000/ instead.

のように表示されてしまいます。
Webmin はサーバーの様々な設定を行うことができるため、盗聴される可能性のある HTTP でのアクセスはいつからか初期状態では無効化されるようになったみたいです。
ただし、ローカルネットワークから見る分には問題ないので、今回は HTTP でアクセスできるようにしてみます。

もとよりローカルネットワーク上の IP アドレスでは Let’S Encrypt を発行できないため、ローカルネットワーク上で HTTPS を使う場合は高い証明書を買うか自己署名証明書を作るかしかありません。
Google は HTTPS 化を強く推進していますが、せめてローカルネットワークは除外してほしいところ…
(自己署名証明書を作る場合は Webmin を開くデバイスにあらかじめ証明書をいれていく必要がある・自己署名証明書を入れていない場合は証明書エラーが出る(無視して続行もできるが面倒))

ターミナルを開いて以下のコマンドを実行し、Webmin の設定ファイルを書き換えます。

sudo sed -i.backup -e "s/ssl=1/ssl=0/g" /etc/webmin/miniserv.conf

終わったら、Webmin サービスを再起動します。

sudo service webmin restart

もう一度 http://localhost:10000/ にアクセスしてみて、ログイン画面が表示されれば OK です。
Ubuntu のユーザー名とパスワードを入力し、ログインします。

Webmin の設定

ログインすると、ダッシュボードが表示されるはずです。
現在の PC の状態を一目で把握できるので、このページだけでもかなり便利だったりします。

ただし、初期状態では英語になっています。せっかくなので日本語にしてみましょう。
サイドメニューから [Webmin] → [Webmin Configuration] へ、沢山あるアイコンの中の [Language and Locale] に行き、[Display in language] を Japanese に設定後、[Change Language] をクリックして変更を保存します。

自動でリロードされたあと、ダッシュボードが日本語になっていれば日本語化は完了です。

ちなみに、ダッシュボードの [Authentic theme version] の項目にカーソルをかざすと表示される設定ボタン → [ナビゲーションメニューオプション] → [Color Palette] から、左側のサイドメニューを好きな配色に変更できます(デフォルトは [Saddle Brown])。

プロセスマネージャーが正しく動作しない問題を修正する

追記: 2020 年 8 月現在で最新の Webmin 1.954 ではこの問題が解消されているため、以下の手順を行う必要はありません。

2020 年 6 月現在で最新の Webmin 1.941 では、Ubuntu 20.04 LTS で動作している場合に、プロセスマネージャー(サーバー上で動作しているプロセスを一覧で表示・編集できる)が「テーブル上にデータがありません」と表示され、正しく動作しない不具合があります(参考)。
本来は「テーブル上にデータがありません」と表示されている箇所にプロセスが一覧で表示されるはずです。
また、Ubuntu 18.04 のサーバーにインストールされた Webmin 1.941 では正常に動作します。

この不具合は Issues#1237 にて報告され、commit 613f3a5 にてすでに修正済みです。
ただし、Webmin のバージョンアップ周期は遅いらしく、今のところ修正版はリリースされていません(Webmin はコミット数が 5000 〜 6000 程度たまったらリリースする方針らしい(コミットを細かくやってるとはいえ量がすごい))

linux-lib.pl 内の ps コマンドを実行する処理が Ubuntu 20.04  LTSだとうまく動かないらしい…
(Webmin 1.941 自体 2020 年 1 月リリースなので対応してないのも無理はない)

そこで、修正済みの linux-lib.pl を GitHub からダウンロードし、修正前の linux-lib.pl を置換します。

バックアップを取ってから、一旦 linux-lib.pl を削除した上で GitHub から修正済みの linux-lib.pl をダウンロードし、chmod 755 で実行できる状態にしています。

sudo cp linux-lib.pl linux-lib.pl.backup
sudo rm linux-lib.pl
sudo wget https://raw.githubusercontent.com/webmin/webmin/master/proc/linux-lib.pl
sudo chmod 755 linux-lib.pl

変更はすぐ反映されるので、Webmin サービスを再起動する必要はありません。

もう一度プロセスマネージャーを開き、プロセスが一覧で表示されていれば OK です。

最初は root でログインしていない事を疑いましたが、Webmin 自体が root 権限で動作している事を踏まえると可能性は低いな… と詰んでいたところ StackExchange の投稿を偶然見つけ助かりました…
今後のバージョンで修正されるはずなので、1.941 よりも新しいバージョンが出ていれば上記の作業を行う必要はないと思います
Webmin 自体は Ubuntu 20.04 LTS に完全に対応しきれてないようで、今後のアップデートが待たれます

他にも様々な機能があるので、いろいろ試してみるとよいと思います。

Sponsored Link

Samba のセットアップ

この自宅サーバーを立てた目的の1つがファイルサーバーにすること(メイン PC の容量が不足してきたので保管庫にしたい)なので、まずは Windows とファイル共有できるよう、Samba をインストールします。

折角なら GUI でインストール・設定できるようにしようと思ったのですが、有名な system-config-samba はメンテナンスされておらず、Samba のバージョンアップもあってうまく機能しなくなったため、Ubuntu 19.04 あたりでリポジトリから削除されてしまったようです。

Ubuntu のファイルマネージャー(Nautilus)自体に Samba の設定を行える機能があるようですが、あまり細かな設定はできないようです

Samba のインストール

sudo apt install samba

ターミナルを開き、Samba を apt でインストールします。

Samba is not being run as an AD Domain Controller: Masking samba-ad-dc.service
Please ignore the following error about deb-systemd-helper not finding those services.
(samba-ad-dc.service masked)
Created symlink /etc/systemd/system/multi-user.target.wants/nmbd.service → /lib/systemd/system/nmbd.service.
Failed to preset unit: Unit file /etc/systemd/system/samba-ad-dc.service is masked.
/usr/bin/deb-systemd-helper: error: systemctl preset failed on samba-ad-dc.service: No such file or directory
Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service.

インストール時に下記のようなエラーが出ることがありますが、無視してください。

Samba には「Active Directory ドメインコントローラー」なる機能がありますが、この機能を使う場合は別のパッケージをいくつかインストールしておく必要があり、それらが入っていないのでエラーになっているそうです
エラーメッセージにも「deb-systemd-helper がこれらのサービスを見つけられないという以下のエラーは無視してください(英訳)」と書かれているほか、「Active Directory ドメインコントローラー」機能自体普通にファイルを共有する分には使うことのない機能なので、気にする必要はありません

Samba の設定

/etc/samba/smb.conf を編集するのもいいのですが、先ほど Webmin をインストールしているので、今回はそちらから設定を行います。
まずは Webmin で使えるよう、Webmin のサイドメニューから [モジュールをリフレッシュ] をクリックし、利用可能なモジュールを更新しておきましょう。

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.default

事前に、smb.conf のバックアップをとっておきます。
こうすることで、設定がおかしくなっても最悪元に戻せます(体験談)…

Samba の設定は難解なので、GUI からの方がやりやすいと思います
全然 Samba の設定を理解できていないので、間違っている箇所が多分に含まれている可能性があります
できれば一通り理解してから設定することを推奨します…

Samba ユーザーを作成

毎回ここで詰むんですが、Ubuntu (Linux) のユーザーと Samba で利用するユーザーは別なので、ファイル共有の設定をしても Samba ユーザーが存在しないとファイル共有ができません。
ファイル共有したのに Windows から「アクセスが拒否されました」と出て正しいユーザー名とパスワードを設定してもうまくいかなかったりするのもこれが原因だったりします。

Linux と Samba のユーザーは別だが、Samba ユーザーは Linux に同じ名前のユーザーがいないと作成できないらしい?
sudo pdbedit -a (ユーザー名)

と実行し、Samba ユーザーを追加します。
new password と 2 回訊かれますが、混乱を避けるためにもそのユーザーのパスワードを入力しておきましょう。

Webmin には Linux ユーザーを Samba ユーザーに変換してくれる機能がついていますが、試してみたところうまくいかなかったので使わないほうがいいと思います

プリンター共有を無効にする

Samba にはプリンター共有機能もついていて、デフォルトでは同じネットワーク下にあるプリンターを共有するようになっているようですが、最近のプリンターは単体でローカルネットワークにつながる(少なくともうちのはそう)ため、基本的には必要のない機能です。
共有フォルダ一覧にプリンターが置かれていてもごちゃごちゃするだけなので、無効にしておきます。

printers をクリックし、有効にしますか?を [いいえ] に設定して保存します。
print$ も同様に設定します(本当は printers を無効化するだけでいけるんですが念のため)。

ファイル共有を作成

[サーバー] → [Samba Windows ファイル共有] を開き、[新規のファイル共有を作成] をクリックします。

  • 共有名 … 好きな共有名を設定します。Public とかが無難でしょうか。
  • 共有するディレクトリ … ファイルを共有するディレクトリを指定します。
    • 今回はマウントした HDD を指定しています。
  • 自動的にディレクトリを作成しますか? … デフォルトで [はい] になっているのでそのままでよさそう。
  • 所有者で作成 … ファイル共有時に作成されたファイル・フォルダーの所有者を設定します。
    • ログインしているユーザーと同じものが無難だと思います。
    • root にすると 権限によりますが sudo をつけないと書き込めなくなったり面倒なので…
  • 権限で作成 … ファイル共有時に作成されたファイル・フォルダーの権限を設定します。
    • デフォルトは 755(所有者:Read / Write/ Execute・所有グループ:Read / Execute・その他:Read / Execute)です。
    • 777 に設定すると Ubuntu 上のどんなユーザーでも書き込めるようになります。
  • グループで作成 … ファイル共有時に作成されたファイル・フォルダーの所有グループを設定します。
    • [所有者で作成] と同様、ログインしているユーザーのグループと同じものが無難だと思います。
  • 有効にしますか? … [はい] に設定します。
  • ブラウズ可能にしますか? … [はい] に設定します。
    • [いいえ] に設定すると Windows 側からはフルパスでアクセスしない限り見えないらしい?
  • 共有コメント … コメントを設定します。空でも大丈夫です。

終わったら [作成] をクリックします。

アクセス制御を編集

重要なところだけ…

  • 書き込み可能にしますか? … 書き込めないと意味ないので [はい] に設定します。
  • ゲストのアクセスを可能にしますか? … 今回はローカルネットワーク内のすべての端末からアクセスできる NAS にしたいので、[はい] に設定します。
  • 許可するホスト … [次のみ許可] では、特定の IP アドレス(サブネットマスク可)だけ接続を許可する、といった設定が行えます。
  • 拒否するホスト … [次のみ拒否] では、特定の IP アドレス(サブネットマスク可)だけ接続を拒否する、といった設定が行えます。
  • 有効なユーザ … ファイル共有に利用する Samba ユーザーを指定するようです(自信なし…)。
    • pdbedit で追加したユーザーを設定しておきましょう

Samba サービスの再起動

ファイル共有を作成しただけでは設定は反映されません(正確には 1 分おきに反映されるらしい)。
[Samba サーバーを再起動] から、Samba サービスを再起動しておきましょう。

Windows 側から \\(PC名)\ にアクセスして、正常に共有フォルダにアクセスできていれば完了です。

「アクセスが拒否されました」と出る場合

… GUI から見る分にはいけそうに思えるんですが、なぜか Windows からは「アクセスできませんでした」と表示されアクセスできないことがあります。
Samba の設定は非常に難解(というか公式ドキュメントどこ…)な上、歴史の長いソフトだけあって新旧様々な情報が転がっていてどれが正しいのやら…
Webmin だと GUI で設定できて便利な分、なんかの拍子に設定がこじれると面倒なことになる気がします(これは GUI 設定ファイル編集ツールの宿命)。

もしそうなってしまった場合は、/etc/samba/smb.conf を以前取ったデフォルトのものに戻し、手動で設定を書いていくことになります…(これがまた超地獄、どうにかしてくれ)
いろいろ弄ってたら何故か直ってたという感じなので何が原因かはよくわからないのですが、とりあえずゲスト(すべての人がパスワードなしにアクセスできる)にする共有は

[Public]
    # 共有するフォルダのパス
    path = (フォルダパス)
    # ゲストを許可する
    public = yes
    guest ok = yes
    # 書き込みを許可する
    writable = yes
    # 強制的に利用する UNIX ユーザーの名前
    # 普通はいつもログインしているユーザーを指定する
    force user = (ユーザー名)

のように、通常のユーザー名とパスワードでログインする共有は

[Private]
    # 共有するフォルダのパス
    path = (フォルダパス)
    # 書き込みを許可する
    writable = yes
    # 強制的に利用する UNIX ユーザーの名前
    # 普通はいつもログインしているユーザーを指定する
    force user = (ユーザー名)

のように設定して Samba を再起動したら私の環境だとうまくいきました。force user が大事らしい?
後者は私の場合 path に /(ルート)を指定していたので、実際は force user に root を指定しています(あまりおすすめできる方法ではない)。

先ほどの printers・print$ のようにファイル共有を無効化する場合は available = no を指定します
smb.conf の文法チェックは testparm コマンドで行えます
ちなみに、(少なくとも私の環境では)GNOME のファイル (Nautilus) でWindowsで作成したファイルをコピーすると、権限はほかのファイルと全く同じなのに Samba 経由では閲覧できない変なファイルが作成されてしまいます。
ただし、Samba 経由では閲覧できないファイルを test.txt だとして、cp test.txt test_.txt のように cp コマンドでファイルをコピーすると、test_.txt は Samba で見れるようになります。最初から Nautilus ではなく cp コマンドでファイルをコピーする場合も同様です。
Samba から見れないファイルは Samba の設定によってはアクセスできない謎のフォルダーとして表示できるので、Windows で [プロパティ] → [セキュリティ] で確認すると EveryOne へのアクセス許可が「特殊なアクセス許可」に設定されていることが確認できます。
Nautilus でコピーすると Windows のアクセス許可設定(Unix の chmod や chown で設定するものとは別)が正しくコピーされない、ってところなんでしょうけど、どうにもできなさそうなので Windows で作成したファイルをコピーするときは Samba 経由でコピーしたほうが良さそうです…。
(Ubuntu からでも Nautilus で smb://(PC名) と指定すると Samba 経由でファイル操作を行えます、NAS にしてるフォルダにファイルをコピーするときは Samba 経由でコピーしたほうがいいかも

Samba は検索しても20年くらい前の化石記事が余裕で出てくるので、どなたかいい感じにまとめてくれないかな…

ufw (Gufw) のセットアップ

私の場合は直接インターネットに公開するわけではないとはいえ、自宅サーバーとして使う以上、ファイアウォールの設定は必要になります。

Linux には iptables という高機能なファイアウォールが付属していますが、設定が難解なことで知られています。
Ubuntu には ufw という iptables の設定を簡単に行うためのツールがあり、さらにそれを GUI で行える Gufw もあります。せっかくの GUI 環境なので、今回は Gufw を使ってみます(参考)。

Ubuntu Software から「Firewall Configuration」と検索し、以前同様にインストールします。
その後、デスクトップ左下のメニューから「ファイアウォール設定ツール」を起動します。

起動すると、このような画面になります。
まずは Status: のスイッチをオンにして、ファイアウォールを有効化しましょう。

ファイアウォールを有効化すると、盾の色が変わります(イタリア国旗っぽい)。

先ほど Samba をインストールしましたが、この状態だと Samba が使うポートまで塞がれてしまいます。
「ルール」タブを開き、左下の + アイコンをクリックすると設定ウインドウが表示されます。
検索窓に「samba」と入力すると Application 欄が SAMBA に変わるので、「追加」をクリックします。

ルールはポートごとに手動で設定することもできますが、よく使われるアプリは予め利用するポートのリストが ufw 側に登録されているため、それを利用しています
「追加」をクリックしてもウインドウは閉じませんが、しっかり追加されています(何度も「追加」をクリックすると重複するのでエラーが出ます(実害はない))

設定ウインドウを閉じると、ルールが追加されているはずです。
Samba はポート 137・138・139・445 を使うため、それらのポートを開放するルールを追加しています。

同様の手順で Webmin 用のルールも追加しておきましょう。

「レポート」タブでは現在アプリが使用しているポートの一覧が、「ログ」タブでは Gufw と ufw のログが表示できます
なお、Gufw で行った設定は自動で反映されるようになっています
コマンドライン版の ufw と Gufw では用意されているルールの内容が別になっているため、ufw だと用意されていないルール(例: Webmin)が Gufw だと使える(あるいはその逆)、みたいなことが起きます
Gufw のルール一覧は Gufw の GitHub にありました(.jhansonxi ファイルってなんだよ)

mDNS を利用する場合、ファイアウォールが mDNS 用のポートを塞いていることで使えなくなっていることがあります(Ubuntu の場合、mDNS 自体は最初から有効になっている)。
なぜか Gufw の方のルールには載っていないので、

sudo ufw allow mdns && sudo ufw reload

と実行し、ufw にルールを追加後、ファイアウォールを再読み込みします。

xrdp のセットアップ

xrdp は、Windows から Linux へリモートデスクトップできるようにするためのソフトです。
VNC とかいろいろありますが Windows のリモートデスクトップ使えると何かと都合がいいので…

ここの内容は この記事 からの抜粋です(というかラズパイに限った話じゃないよねこれ)
sudo apt install xrdp

いつもの通り端末から apt でインストールします。

また、Gufw で RDP と検索し、RDP プロトコル用のポートを空けておきます。
RDP プロトコル用のポート 3389 は、サーバーをそのままインターネット上に公開している場合、場合によってはセキュリティ的に脆弱になる可能性があります。セキュリティリスクを踏まえた上で設定してください。

日本語キーボードの配列を追加

xrdp はデフォルトで日本語キーボードの配列に対応していないらしいので(対応したという話もあるけど)、別途設定しておきます。

cd /etc/xrdp/
sudo wget http://w.vmeta.jp/temp/km-0411.ini
sudo ln -s km-0411.ini km-e0010411.ini
sudo ln -s km-0411.ini km-e0200411.ini
sudo ln -s km-0411.ini km-e0210411.ini

wgetで配列設定をダウンロード、その後シンボリックリンクで設定しているっぽいです。

xrdp サービスを再起動

sudo service xrdp restart

と実行し、xrdp サービスを再起動します。

Windows 側からリモートデスクトップできれば OK です。
ただ、普通にログインしているのと同じユーザーでログインするといろいろ不整合が発生するっぽいので、リモートアクセス用のユーザーを作ったほうがいいかも?

SSHD のセットアップ

ほかの PC からコマンドを叩くのに必須な SSH サーバーですが、Ubuntu Desktop には標準ではインストールされていません。そこで、SSH サーバーをインストールしてみます。

sudo apt install ssh

インストール自体は apt でサクッと行えます。
インストールが終わるとすでに SSH サーバーが立ち上がっているので、適宜 TeraTerm や ssh コマンドでログインしましょう。

今回は直接サーバーをインターネットに繋がないためインストールしただけの状態で使っていますが、サーバーをインターネットに直接接続する場合はブルートフォースアタックで不正ログインされる可能性があるなど、そのままではセキュリティ的に脆弱な状態です。
SSH のポートを変更する、公開鍵認証に変えるなどの対策を取ってください(参考:Ubuntu 18.04 LTSのVPSを建てたときのメモ(リンク先の記事では全て root で実行しているためコマンドに sudo がついていませんが、適宜つけて実行してください))。
SSH コマンドはパスワードを平文で保存しないためなのかパスワードを引数に指定できなくて毎回入力する羽目になる(公開鍵なら指定できる)ので、ローカルで使う場合でも公開鍵認証にはしといたほうがいいと思います

Apache のセットアップ

一応自宅サーバーなので、とりあえず Apache をインストールしていきます。
Apache のインストール自体は簡単です。

sudo apt install apache2

でインストールし、

sudo ufw allow "Apache Full" && sudo ufw reload

で 80 番ポートと 443 番ポートを解放するだけです。

ブラウザから http://(UbuntuPCのIPアドレス)/ を開き、「Apache2 Ubuntu Default Page」(いつもの)が開けば正しくインストールできています。
デフォルトでは /var/www/html/ 以下のドキュメントをポート 80 番で Listen する設定になっています。

PHP のセットアップ

Ubuntu 20.04 LTS の PHP は 7.4 が標準になっているようですが、どうしても最新版の反映が遅れることがあるため、今回は PPA リポジトリのものを使ってみます。

sudo add-apt-repository ppa:ondrej/php

software-properties-common は既に入っているので、直に add-apt-repository で PPA リポジトリを追加します( ondrej 氏に感謝)。
[ENTER] を押すと続行しますとか言われるので、そのまま Enter キーを押すと追加が完了します。

sudo apt update && sudo apt upgrade
sudo apt install php7.4

update と upgrade した後、PHP をインストールしていきます。
PHP は2020 年 12 月現在最新の 7.4 をインストールします(PHP 8.0 も出たけどがさすがに早すぎる)。
標準的な PHP の拡張機能も PHP 本体のインストール時にまとめてインストールされます。

sudo apt install php7.4-bcmath php7.4-curl php7.4-mbstring php7.4-xml php7.4-zip

他の拡張機能もインストールしておきましょう。どれも各種フレームワークで要求される事が多いものです。
特に mbstring は日本語のようなマルチバイト言語ではもはや人権と言っても過言ではありません。

$ php -v
PHP 7.4.13 (cli) (built: Nov 28 2020 06:24:59) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.13, Copyright (c), by Zend Technologies

php -v と実行してバージョン名が表示されれば OK です。

sudo a2enmod php7.4
sudo service apache2 restart

a2enmod コマンドで php7.4 モジュールを有効化し(インストール時に有効になってるかも)。
その後、Apache を再起動しておきます。

<?php phpinfo();

/var/www/html に 上記の内容を phpinfo.php として保存して、ブラウザから http://(PCのIPアドレス)/phpinfo.php にアクセスします。

このように PHP の各種情報が表示されれば OK です。
ローカルでのみ運用する場合は必要ありませんが、外部に公開する場合はセキュリティ上の観点から phpinfo.php は削除しておくことを推奨します。

Apache の設定

PHP もインストールできたので、Apache の設定を行います。
ここでは /var/www/mysite 以下をポート 5000 で公開する例で説明しますが、各自の環境に合わせてください。

かなり我流でやっているので、もしかすると一般的な方法からずれているかもしれません
<VirtualHost *:5200>
    ServerName 127.0.0.1:5000
    DocumentRoot /var/www/mysite
    ErrorLog /var/log/apache2/mysite.error.log
    CustomLog /var/log/apache2/mysite.access.log combined
    LogLevel warn
    <IfModule mod_php5.c>
        php_value include_path "."
    </IfModule>
</VirtualHost>

まず、/etc/apache2/sites-available/ に上記の内容を追加した virtual.conf を追加します。
バーチャルホストとは一つのサーバーで複数のサイトを立ち上げることができる Apache の機能です。通常はバーチャルホストで設定します。

sudo a2ensite virtual.conf

その後、a2ensite コマンドを実行して追加した設定ファイルを有効化します。
設定ファイルは配置しただけでは読み込まれず、a2ensite コマンドで別途有効化する必要があります(ここはまりポイント)。000-default.confdefault-ssl.conf は標準で有効化されています。
内部的にはシンボリックリンクを /etc/apache/site-enabled/ 以下に貼っているようです。

次に、/etc/apache2/ports.conf 内の Listem 80 の下に Listem 5000 と追記します。
ports.conf は Apache が利用するポートを設定するもので、virtual.conf に設定したバーチャルホストの設定とは別に行う必要があるようです。

sudo ufw allow 5200 && sudo ufw reload

最後にポートを開けます。今回は 5000 ポートを利用するので、ufw で5000 ポートを開放してリロードします。

sudo service apache2 restart

そしたら Apache を再起動して、ブラウザから http://(PCのIPアドレス):5000/ にアクセスしてとりあえず 403 なり何か表示されていれば正常に設定できています。
/var/www/html にあるファイルと同じものが表示されている場合は正しく設定を読み込めていません。
設定ファイルに構文ミスがある場合は restart の時点でエラーになります。適宜修正しましょう。

あとは /var/www/mysite 以下に HTML なり WordPress なりを入れれば何かしらサイトを閲覧できる状態になります。

(順次追記します)

コメント