コース一覧
LinuC レベル1(LPIC-1対応)対策
suとsudo

LinuC レベル1(LPIC-1対応)対策

ブートとsystemd、パッケージ管理(APT/RPM両系統)、コマンドとviの操作、ファイルシステム、シェルスクリプト、ユーザー管理とセキュリティ、ネットワークまで、LinuC レベル1(LPIC-1対応)の全出題範囲を、毎レッスン実際にコマンドを打って確かめながら学べる対策コースです。ブラウザの中で本物の Debian 12 が動いていて、62レッスンのうち36本は読むだけで終わらず、自分の手でコマンドを打った結果で採点されます。Linux入門を修了した方を対象としています。101・102それぞれの模試60問で分野別の弱点を洗い出し、直前チェックで暗記事項を固めてから本番に臨めます。

1
試験ガイダンス
01. LinuC/LPICとは15分
02. LinuCとLPICの選び方15分
03. 学習計画15分
04. 出題形式を体験15分
2
101 ブートとアーキテクチャ
01. ブートの流れ18分
02. GRUB15分
03. systemdとターゲット18分
04. ハードウェア情報18分
05. カーネルモジュール18分
06. 過去問 アーキテクチャ15分
3
101 パッケージ管理
01. Debian系パッケージ18分
02. RPM系パッケージ15分
03. 両系統の対応表15分
04. リポジトリ管理18分
05. 共有ライブラリ18分
06. 過去問 パッケージ管理15分
4
101 GNU/Unixコマンド
01. ファイル操作の試験オプション18分
02. テキスト処理18分
03. ストリームとリダイレクト18分
04. プロセス監視18分
05. 優先度18分
06. grepと正規表現18分
07. viの操作15分
08. 過去問 コマンド15分
5
101 ファイルシステム
01. パーティション15分
02. 作成とマウント18分
03. fstabとUUID18分
04. パーミッションとリンク18分
05. 容量とクォータ18分
06. findとlocate18分
07. 過去問 ファイルシステム15分
6
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
7
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
8
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
9
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分
10
模試と直前対策
01. 模試 10190分
02. 101弱点復習15分
03. 模試 10290分
04. 102弱点復習15分
05. 直前チェック15分
06. 受験と次のステップ15分

suとsudo

su で root になったのに /sbin のコマンドが見つからない。ハイフンを付けなかっただけです。ここと、sudoers を直接編集してはいけない理由。この回の中心はこの2つです。

ハイフンの有無で、環境が入れ替わるかが決まる

ターミナル

su su - su - alice su -c "systemctl status ssh" alice

引数なしの su は root に切り替わりますが、環境変数は元のユーザーのものを引き継ぎます。カレントディレクトリも変わりません。PATH が一般ユーザーのままなので /sbin 配下のコマンドが見つからず command not found に悩まされる、というのが典型的な症状です。

ハイフンを付けた su - はログインシェルとして起動します。対象ユーザーの .bash_profile や .profile が読み込まれ、PATH も HOME も対象ユーザーのものに切り替わり、カレントディレクトリはそのユーザーのホームになります。su -l や su --login も同じ意味です。管理作業で root になるなら基本は su - です。

su - alice はそのユーザーとしてログインシェルを起動し、su -c "コマンド" は1つのコマンドだけを実行して元のシェルに戻ります。そして su は切り替え先ユーザーのパスワードを要求します。root になりたければ root のパスワードが要ります。

sudo は自分のパスワードで、範囲を限って借りる

sudo は発想が違います。実行者自身のパスワードを入力すると、あらかじめ許可された範囲で他のユーザー、既定では root の権限を借りてコマンドを1つ実行します。root のパスワードを配らずに管理作業を委譲でき、誰がいつ何を実行したかがログに残るのが利点です。

書き方意味
sudo <cmd>root の権限で1つのコマンドを実行
sudo -u alice <cmd>alice の権限で実行
sudo -l自分に許可されているコマンドを一覧表示
sudo -iroot のログインシェルを起動する。su - に近い
sudo -sroot のシェルを起動する。環境は概ね維持される
sudo -kパスワードのキャッシュを破棄する

sudoers は visudo を通す

設定は /etc/sudoers に書きますが、このファイルをエディタで直接開いてはいけません。理由は文法エラーです。sudoers に文法エラーがあると sudo 自体が動かなくなり、root のパスワードを設定していない環境では誰も管理権限を取り戻せなくなります。

visudo はロックを取って一時ファイルを編集させ、保存時に文法検査を通ってからでないと本体に反映しません。エラーがあればその場で警告してやり直させます。visudo -c は文法検査だけを行い、-f でファイルを指定すれば任意のファイルを検査できます。

/etc/sudoers の末尾には通常 #includedir /etc/sudoers.d が書かれていて、/etc/sudoers.d/ 配下が読み込まれます。本体を触らずに設定を足したり消したりできるので、追加はこちらに置きます。追加ファイルを編集するときも visudo -f <パス> を通します。

sudoers の1行は3つに分かれる

プレーンテキスト

alice ALL=(ALL:ALL) ALL bob ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx %sudo ALL=(ALL:ALL) ALL

並びはユーザー、ホスト=(なれるユーザーとグループ)、コマンドの3つです。1つ目が対象で、先頭に % を付けるとグループを指します。2つ目の ALL= はこの設定が有効なホスト名で、単一サーバーなら ALL にします。丸括弧の中は誰の権限になれるかで、最後がその権限で実行できるコマンドです。コマンドは絶対パスで書きます。

NOPASSWD を付けると、そのコマンドに限りパスワード入力を省けます。ただしここを ALL にすると、そのアカウントを取られた時点で無条件に root を取られます。上の例のように、必要な1つのコマンドまで絞ってください。

管理者権限をまとめて与えるときは、Debian と Ubuntu では sudo グループ、Red Hat 系では wheel グループに入れるのが慣習です。

試験で狙われるところ

su は切り替え先のパスワード、sudo は自分のパスワードを要求します。ハイフンを付けない su は環境変数を引き継ぎます。sudoers は visudo を通します。理由は保存時の文法検査です。グループを指定するときは名前の先頭に % が要ります。

ヒント

ファイルはヒアドキュメントで書けます。cat > /etc/sudoers.d/linuc <<'EOF' から始めて EOF で閉じます

sudoers の1行は「ユーザー ホスト=(実行できるユーザー) コマンド」の順です。パスワードを省くには NOPASSWD: をコマンドの前に置きます

linucops ALL=(ALL) NOPASSWD: ALL の1行で足ります。書いたら visudo -c -f /etc/sudoers.d/linuc で必ず検査してください

  • 1. id linucops で setup が作ったユーザーを確認する
  • 2. cat のヒアドキュメントで /etc/sudoers.d/linuc を作り、linucops に NOPASSWD で全コマンドを許可する行を書く
  • 3. chmod 440 /etc/sudoers.d/linuc で権限を整える
  • 4. visudo -c -f /etc/sudoers.d/linuc で文法検査を通す
  • 5. sudo -u linucops id -un と su - linucops -c "id -un" で切り替わることを確かめる

5 項目で採点します