Arch Linux インストール (5)

ログイン
実際にインストールした Arch Linux を起動した後は、ログインを求められるので、入力します。

arch loginroot
Passwordpasswd コマンドで設定した管理者権限のパスワード

Linux では、管理者権限でログインする時のユーザー名は、root で固定となっています。

ログインできたら、コマンド入力ができる状態になります。
再起動とシャットダウン
ここからは、再起動またはシャットダウンしたい場合、以下のコマンドを使うことになります。
途中で終了したい場合や、インストールメディアを再起動したい時などに使ってください。

## 再起動
# systemctl reboot

## シャットダウン
# systemctl poweroff
ネットワークの接続
まだネットワークの接続を行っていない場合や、この段階での設定が必要な場合は、それぞれ設定してください。
systemd-resolved のリンク
systemd-resolved を使う場合、/etc/resolv.conf をリンクファイルとして作成して、DNS サーバーを設定してください。

# ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
iwd 接続
iwd で無線 LAN 接続する場合は、iwctl で接続してください。

# iwctl station wlan0 connect <network>
                ~~~~~         ~~~~~~~~~
Passphrase: (暗号化キー入力)
/etc/resolv.conf
/etc/resolv.conf で DNS サーバーの IP アドレスの設定が行われていない場合は、ネットに接続できません。
手動で設定する場合は、以下のように記述してください。

# ルータ (機器による)
nameserver 192.168.0.1

# Google Public DNS
nameserver 8.8.8.8
ユーザーアカウント
# ユーザーとグループ - ArchWiki

インストール直後は、管理者権限のアカウント (root) しか作られていないので、個人が普段使うためのユーザーアカウントを作成します。

一人しかパソコンを使わない場合でも、必ず一つは作成する必要があります。
ユーザーの追加
ユーザーを追加するには、useradd コマンドを使います。

一般的なユーザーアカウントを作る場合は、以下のようにします。
ユーザー名は好きな名前 (ASCII 文字) で構いません。

# useradd -m -G wheel <ユーザー名>

-m, --create-homeユーザー用のホームディレクトリを作成する。
/home/<user> のディレクトリが作成される。
-g, --gid <group>ユーザーが所属するメイングループのグループ名。
省略すると、ユーザー名と同じ名前で新しいグループが作られる。
-G, --groups <group>ユーザーが所属するサブグループのグループ名 (複数可)。
-s, --shell <shell>デフォルトのログインシェルのパス。
デフォルトで /bin/bash
グループについて
ユーザーグループには、
「一つのユーザーに一つしか指定できない、メインのグループ」 と、
「一つのユーザーに複数指定できる、サブグループ」 の2種類があります。

メイングループ
ユーザーがファイルを新規作成した時、ファイルの所有グループは、「作成したユーザーが所属しているメイングループ」に設定されます。

「ユーザーが属しているメイングループ」=「ユーザーが作成したファイルのグループ」となるので、ファイルのアクセスをグループで制限する時に関係してきます。

複数のユーザーが作成したファイルを、グループで共有したい場合は、同じメイングループに設定すると良いでしょう。

ユーザー作成時にメイングループの指定を省略すると、ユーザー名と同じ名前で、新しいグループが作成されるので、グループを共有したくない場合は、ユーザーごとにメイングループを変えてください。

サブグループ
サブグループは、各ユーザーに、グループごとの機能を持たせたい場合に使います。

例えば、sudo コマンドは、wheel グループに入っているユーザーのみがコマンドを使えるように設定できるため、sudo を使えるように wheel グループに入れる、といった感じで使います。

sudo コマンドを使うために、一般ユーザーは、デフォルトで wheel グループに入れておいた方が良いです。
ユーザーのパスワード設定
ユーザーを作成した後は、パスワードを設定します。
設定せずに使うこともできますが、その場合は誰でもログインできてしまうので、普通は設定しておきます。

# passwd <ユーザー名>

root のパスワードを設定する時にも使った passwd コマンドで、ユーザー名を指定して、パスワードを設定します。
パスワードの入力と、確認用の再入力が求められるので、2回入力してください。
ユーザー関連の操作
ユーザーの削除
# userdel -r <ユーザー名>

-r : ホームディレクトリを削除する。

ユーザーの一覧
# less /etc/passwd

「ユーザー名:パスワード(x):ユーザーID:グループID::ホームディレクトリ:ログインシェル」

グループの一覧
# less /etc/group

「グループ名:パスワード(x):グループID:このサブグループに所属しているユーザー」
sudo
# Sudo - ArchWiki

sudo コマンドは、一般ユーザーにログインしている状態で、一時的に管理者権限での操作を行いたい時に使います。

sudo パッケージをインストールしていない場合は、別途インストールしてください。
base パッケージに sudo は含まれていませんが、base-devel パッケージグループには含まれています。

# pacman -S sudo
sudo の設定
sudo コマンドは、インストールしただけでは使えません。
/etc/sudoers のファイルを編集して、設定を行う必要があります。

※ sudoers ファイルに構文エラーなどがあると、sudo が使えなくなる場合があるため、編集は慎重に行う必要があります。

visudo コマンドを使うと、保存前に構文エラーを指摘してくれたりするので、安全に編集することができます。
テキストエディタはデフォルトで vi になっていますが、環境変数 EDITOR で、エディタを nano に指定しておきます。

# EDITOR=nano visudo

# %wheel ALL=(ALL) ALL」 の行を探します。
その行の先頭の # とスペースを削除して、コメント化を解除すると、wheel グループに入っているすべてのユーザーが、sudo コマンドを使えるようになります。

Ctrl+XyEnter で上書き保存します。
multilib
# Multilib - ArchWiki

64bit 環境で 32bit のアプリケーションを動作させるには、multilib リポジトリにあるパッケージが必要になります。
Wine を使って Windows アプリを実行したい場合などは必要になるので、あらかじめ設定しておきます。
(必要になった時に、後から設定しても構いません)

/etc/pacman.conf ファイルが、pacman コマンドの設定ファイルとなっているので、このファイルを編集します。

# nano /etc/pacman.conf

下の方に以下のような行があるので、その2行の # を削除してください。

#[multilib]
#Include = /etc/pacman.d/mirrorlist

変更を保存したら、現在の multilib のパッケージリストを取得する必要があるので、以下のコマンドでリストを更新します。

# pacman -Syy
時刻の自動調整
# Network Time Protocol deamon - ArchWiki
# systemd-timesyncd - ArchWiki

ntp を使うと、NTP サーバーから時刻を取得して、正確な時刻に調整することができます。
systemd-networkd を使っていて、ネット接続時に自動で設定したい場合は、代わりに systemd-timesyncd を使うこともできます。

## インストール
# pacman -S ntp
NTP サーバーの選択
デフォルトで Arch Linux の NTP サーバーが指定されていますが、日本のサーバーを使うこともできます。

ntp の設定ファイルは、/etc/ntp.conf ファイルです。

# nano /etc/ntp.conf

server の行を、日本のサーバーに入れ替えます。
以下のサイトなどから、NTP サーバーを選択してください。

# インターネットマルチフィード時刻情報提供サービス for Public
# NTP POOL PROJECT (Japan)

MFEED のサーバーを使う場合は、以下のようになります。

server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
サービスを有効にする
PC 起動中、バックグラウンドで動作させて、常に時刻が正しくなるようにしたい場合は、ntpd.service を有効にすると、PC 起動時に動作を開始します。

PC 起動時に、一度だけ時刻を合わせたい場合は、ntpdate.service を有効してください。

ただし、両方とも、ハードウェアに時刻は書き込まれません。

# systemctl enable ntpd (または ntpdate)
手動で設定
そこまで正確に時間を合わせる必要はなく、必要な時だけ手動で行いたい場合は、以下のようにします。
時刻を合わせた後は、ハードウェアに時刻を書き込んでください。

# ntpd -qg
# hwclock -w

-q : 常駐させずに、一度だけ実行して終了させます。
-g : 現在の時刻と、取得した時刻が大幅にずれている場合、ntp はデフォルトで同期を行いません。このオプションで、それを無効にして、常に同期を行います。
ビープ音を無効にする
コマンドライン上では、キーボード操作中にビープ音が出て、うるさい場合があります。

Linux 上で常にビープ音を無効にしたい場合は、以下のコマンドで、pcspkr (PC スピーカーの略) モジュールをロードしないように設定すれば、ビープ音を鳴らさないようにすることができます。

# echo "blacklist pcspkr" > /etc/modprobe.d/nobeep.conf
systemd のタイムアウト時間を変更
Linux の起動時や終了時、systemd は各処理が正常に終わるまで待ちますが、そのタイムアウト時間は、デフォルトで 90 秒と設定されています。

例えば、起動時に、ネット接続に時間がかかったり失敗すると、90 秒間じっと待つことになります。
また、終了時に、実行されているサービスなどを正常に終了させる時も、それらに応答がなかった場合は、90 秒間待つことになります。

処理に数秒かかっていれば、その時点でほぼ失敗していると思われるので、それらを早めに終わらせたい場合は、以下のように設定します。

/etc/systemd/system.conf をテキストエディタで開いて、以下の行を探して設定してください。
(先頭の # は削除してください)

DefaultTimeoutStartSec=10s
DefaultTimeoutStopSec=10s

10s で、10 秒になります。
作成したユーザーでログイン
この段階で、動作に最低限必要な設定は完了したので、ここからは、GUI など自分用の環境を作っていくための操作を行っていきます。

※ホームディレクトリのファイルを操作する場合は、そのユーザーでログインしてから、操作してください。
一般ユーザーでログイン
su コマンドを使うと、他のユーザーにログインすることができます。

# su <ユーザー名>

root から一般ユーザーへログインする場合、パスワードの入力を行う必要はありませんが、一般ユーザーから別のユーザーにログインする場合は、パスワードの入力が必要になります。

root にログインしたい時は、ユーザー名を 「- (マイナス)」 にしてください。
sudo による一時的な root
今までは root 上で操作を行っていたので、ユーザーの違いを意識する必要はありませんでしたが、一般ユーザーで操作をしていく場合、管理者権限が必要になる操作が出てきます。

コマンドで操作するファイルやディレクトリの所有者が root となっている場合、root でログインした状態で実行する必要があるため、一般ユーザーでは書き込みができません。

例えば、pacman コマンドでパッケージをインストールする際は、システムのディレクトリにファイルを書き込むため、管理者権限が必要です。

su コマンドで root に切り替えることはできますが、一つのコマンドを実行するために、いちいちユーザーを切り替えるのは面倒なので、そういった時は sudo コマンドを使います。

実行したいコマンドの前に sudo を付けると、そのコマンドの実行時のみ、root でログインして、実行させることができます。

(例)
$ sudo pacman -S ...

この時、root のパスワードが必要になるので、入力する必要があります。

なお、前回 sudo を使ってから、一定時間(デフォルトで5分)以内である場合、sudo が一時的にパスワードを記録しているので、その間に sudo を実行した時は、再度パスワードを入力する必要はありません。
ホームディレクトリの操作について
root でログインしている状態で、一般ユーザーのホームディレクトリは操作しないでください。

ホームディレクトリのパスを指定するために使う "~" は、ログインしているユーザーごとにパスが変わります。
一般ユーザー時は /home/<username> ですが、root でログインしている場合は、/root となります。

また、root にログインしている状態で、他のユーザーのホームディレクトリにファイルを作成すると、ファイルの所有者が root になってしまうので、面倒なことになります。

ホームディレクトリのファイルを操作する時は、必ず、そのユーザーがログインしている状態で行ってください。
以降の操作
以降は、GUI 環境など、各個人が必要なパッケージをインストールして、構築していくことになります。

>> インストール (6)