Upgrade to Pro — share decks privately, control downloads, hide ads and more 


Modern Linux

Modern Linux

Oracle Cloud Hangout Cafe Season 10 #4

Avatar for oracle4engineer

oracle4engineer PRO

September 10, 2025
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. Modern Linux Oracle Cloud Hangout Café Season 10 #4 Yutaka

    Ichikawa Solutions Architect Sep 10, 2025
  2. 2 Copyright © 2025, Oracle and/or its affiliates @cyberblack28 Community

    Oracle Cloud Hangout Café (#ochacafe) Publications Yutaka Ichikawa 垂川 豊 クラりド事業統括 クラりド・゚ンゞニアリング COE 統括 ゜リュヌションズ・アヌキテクト郚 プリンシパル・クラりド・゚ンゞニア
  3. Copyright © 2025, Oracle and/or its affiliates 3 第1郚クラりドネむティブの基本抂念を䞁寧に解説 第2郚OCI

    のクラりドネむティブサヌビスを機胜ごずに解説 第3郚Oracle Cloud Free Tier を掻甚しお、環境構築IaC アプリケヌションリリヌスCI/CD、運甚監芖Observabilityたでを ハンズオンで䜓埗 2025幎9月17日 新刊発売 https://bit.ly/oci-cloud-native-journey
  4. Agenda title 5 Copyright © 2025, Oracle and/or its affiliates

    1 2 3 4 5 6 モダン Linux に぀いお カヌネル入門 シェルずスクリプト アクセス制埡 アプリケヌション、パッケヌゞ管理、コンテナ 高床なトピック & モダンLinuxツヌル
  5. モダン Linux に぀いお 7 Copyright © 2025, Oracle and/or its

    affiliates 参考曞籍 1ç«  Linux の入門 2ç«  Linux カヌネル 3ç«  シェルずスクリプト 4ç«  アクセス制埡 5ç«  ファむルシステム 6ç«  アプリケヌション、パッケヌゞ管理、コンテナ 7ç«  ネットワヌク 8ç«  オブザヌバビリティ可芳枬性 9ç«  高床なトピック 付録A 䟿利なコマンド集 付録B モダン Linux ツヌル
  6. モダン Linux に぀いお 8 Copyright © 2025, Oracle and/or its

    affiliates 曞籍で述べる「モダン Linux」ずは モダンな環境の広がり モバむル機噚、クラりドコンピュヌティング、IoT、 プロセッサアヌキテクチャの倚様化 Linux が果たす圹割 ほずんどのモダンなシステムに Linux が組み蟌たれおいる Linux は今では、日垞生掻・産業の基盀ずしおあらゆる 堎面に組み蟌たれ、開発者や䌁業に欠かせない存圚に なっおいる 倚様化するモダンな環境に適甚する Linux
  7. モダン Linux に぀いお 9 Copyright © 2025, Oracle and/or its

    affiliates 曞籍の抂芁 各章は、埓来からの基瀎的な Linux の知識を土台ずし぀぀、 最新のツヌルやモダンな䜿い方も取り入れお解説 Linux 基瀎知識 モダンなアプロヌチ ピックアップしたアゞェンダに察しお、この二぀を軞に発衚したす
  8. カヌネル入門 11 Copyright © 2025, Oracle and/or its affiliates 曞籍の抂芁

    • Linux カヌネルずは䜕か • カヌネル党䜓ず構成芁玠 • Linuxのアヌキテクチャ党䜓ずLinuxカヌネルが果たす圹割 • カヌネルが党おのコア機胜を提䟛し、OS ではない Linux 基瀎知識 • モダンなカヌネル拡匵 eBPF モダンなアプロヌチ
  9. カヌネル入門 12 Copyright © 2025, Oracle and/or its affiliates カヌネルKernelずは

    カヌネル Kernel ずは、 OS の䞭栞で重芁な郚分 OS ではない
  10. カヌネル入門 13 Copyright © 2025, Oracle and/or its affiliates カヌネルKernelの圹割

    カヌネル抂芁図 ナヌザヌ空間 カヌネル ハヌドりェア
  11. カヌネル入門 14 Copyright © 2025, Oracle and/or its affiliates カヌネルKernelの圹割

    1.リ゜ヌス管理 2.プロセス管理 3.メモリ管理 4.デバむス管理 5.システムコヌル カヌネルは、CPU、メモリ、呚蟺機噚等のリ゜ヌスを管理し、他のプログラムから利甚できるようにする。 プロセスの生成、実行、終了、リ゜ヌスの割り圓お、排他制埡、プロセス間通信などの制埡を行う。 プロセスごずに仮想的なメモリ空間を䜜り、プロセスにメモリを割り圓おる。 必芁に応じお、メモリ内容をハヌドディスクに退避し、物理搭茉メモリ以䞊の空間を提䟛する。 カヌネルは、デバむスドラむバが物理的に呚蟺機噚にアクセスするための機胜やメモリ空間を提䟛。 アプリケヌションから呌び出し可胜なプログラム矀。アプリケヌションが、このシステムコヌルを通じお、カヌネルに凊理を䟝 頌する。
  12. カヌネル入門 15 Copyright © 2025, Oracle and/or its affiliates カヌネルKernelの圹割

    アプリケヌションがファむルからデヌタを読み蟌む凊理
  13. カヌネル入門 16 Copyright © 2025, Oracle and/or its affiliates 特暩モヌドず非特暩モヌド

    Linuxには、カヌネルずアプリケヌションを正しく動䜜させるために特暩モヌドず非特暩モヌドがある。 カヌネルで扱うプログラムは、誀るず他のプロ グラムに圱響を及がすので、カヌネルのみ が実行できるよう特暩モヌドが䞎えられ、 カヌネル以倖のアプリケヌションは非特暩 モヌドが䞎えられおいる。
  14. カヌネル入門 17 Copyright © 2025, Oracle and/or its affiliates カヌネルの拡匵

    1.カヌネルビルド 2.カヌネルモゞュヌル 3.eBPF カヌネル本䜓の゜ヌスコヌドを線集し、再コンパむルしお機胜远加や倉曎を行う。 必芁な機胜をモゞュヌルずしお䜜成し、コマンドで動的に読み蟌む。 カヌネル内で動くバむトコヌドをナヌザヌ空間から安党にロヌドしお実行する。 拡匵しやすい 拡匵しにくい モダンなアプロヌチ
  15. カヌネル入門 18 Copyright © 2025, Oracle and/or its affiliates eBPF

    ずは eBPFExtended Berkeley Packet Filterは、 Linux カヌネルの゜ヌスコヌドの倉曎やモゞュヌルを远加するこずなく Linux カヌネル内郚でプログラムを実行できる技術
  16. カヌネル入門 19 Copyright © 2025, Oracle and/or its affiliates eBPF

    ずは Linux カヌネル空間で皌働し、Linux カヌネルの機胜を拡匵する技術 Linux カヌネルに盎接ロヌドされお、新しい機胜の远加、 既存機胜を倉曎するプログラム Linux カヌネルのサブセットずしお、Linux カヌネルの拡 匵や制埡を実行できるプログラム • プログラミングのハヌドルが高い • 埌方互換性を担保しないガバナンスによりメンテナンスが厳しい • レビュヌ条件や開発者亀枉などが厳しく、アップストリヌムのハヌ ドルが高い • アップストリヌムからディストリビュヌションのリリヌスたで時間が長い • カヌネルモゞュヌルプログラミングに比べお、ハヌドルが䜎い • eBPF プログラムは埌方互換性を担保されおいる • 埌方互換性担保によるアップストリヌムの䞍芁 • アップストリヌム䞍芁のため、リリヌスも早くできる
  17. カヌネル入門 20 Copyright © 2025, Oracle and/or its affiliates eBPF

    開発 1. プログラム䜜成 䟋: 「パケットが届いたら䞭身をチェックしおフィルタする」凊理。 2. bytecode にコンパむル clang -target bpf などで倉換。 3.カヌネルにロヌド & フックにアタッチ 䟋: XDP フックネットワヌクスタックの入口に関連付け。 4.むベント発生で実行 ネットワヌクパケットが届くたびに、その eBPF プログラムbytecodeが実行される。
  18. カヌネル入門 21 Copyright © 2025, Oracle and/or its affiliates eBPF

    開発 eBPF は、C 蚀語でプログラミングしお、Clang ずいうコンパむラを利甚しお、bytecode ずいうプログラムを生成する bytecode は、Linux カヌネル内で動䜜する独自のレゞスタマシンず呜什セットを持ち、 アヌキテクチャ非䟝存な仮想マシン。
  19. カヌネル入門 22 Copyright © 2025, Oracle and/or its affiliates eBPF

    開発 bytecode を Linux カヌネルにロヌド 䞻芁なラむブラリ - libbpf (C) - cilium/ebpf (Go) - libbpf-rs (Rust) ELFファむルを加工しお、最終的に Syscall に枡す=ロヌド ※ナヌザスペヌスでELFフォヌマット のファむルをカヌネルが読み蟌めるよ うにする凊理
  20. カヌネル入門 23 Copyright © 2025, Oracle and/or its affiliates eBPF

    開発 ロヌドされた bytecode を Verifier で怜蚌、JIT Compiler で各 CPU の呜什に合わせお、bytecode を倉換 bytecode を Verifier で怜蚌
  21. カヌネル入門 24 Copyright © 2025, Oracle and/or its affiliates eBPF

    開発 bytecode の実行は、フックからむベントドリブンに呌び出されお実行 䞻なフック • Socket : socket のデヌタ入出力を契 機にフィルタする • Syscall : システムコヌルの呌び出しを 契機にトレヌスやフィルタする • Kprobe / ftrace : カヌネルの関数の呌 び出しを契機にトレヌスなど行う • TC / XDP : NIC のパケット入出を契 機にパケットに察する凊理を行う etc Program types : https://github.com/iovisor/bcc/blob/master/docs/kernel- versions.md#program-types
  22. カヌネル入門 25 Copyright © 2025, Oracle and/or its affiliates eBPF

    開発 eBPF Maps は、ナヌザプログラムずカヌネルプログラムの間でデヌタを共有する仕組み Key Value ペアのデヌタ構造をベヌスに配列やハッシュテヌブルなどのタむプ を利甚しお、ナヌザプログラムずカヌネルプルグラム間でデヌタを共有、読み取り、 曎新が可胜 Maps types : https://github.com/iovisor/bcc/blob/master/docs/kernel- versions.md#map-types
  23. カヌネル入門 26 Copyright © 2025, Oracle and/or its affiliates eBPF

    開発 [ナヌザヌの意図] 「プロセスを監芖したい」「䞍審な通信を止めたい」 ↓ (抜象化) [ツヌル] bpftrace / Falco / Cilium / Pixie ... ↓ (内郚で) [むベントフックに eBPF バむトコヌドをアタッチ] ↓ [カヌネルでの監芖・制埡が実行] eBPF を䜿った Observability可芳枬性や Securityセキュリティのツヌルは、むベントフックずバむトコヌドの仕 組みを盎接觊らなくおもいいように抜象化しおいる。 • eBPF 自䜓は「フックバむトコヌド実行」の䜎レ ベル仕組み。 • Observability や Security のツヌルは、その 䜎レベル操䜜を隠蔜しお 「ポリシヌを曞く」「スク リプトを曞く」「UI で芋る」ずいった高レベル䜓隓 にしおいる。
  24. シェルずスクリプト 29 Copyright © 2025, Oracle and/or its affiliates 曞籍の抂芁

    • シェルの基本 • ストリヌム • シェルスクリプトのグッドプラクティス Linux 基瀎知識 • モダンなコマンド • モダンなシェル モダンなアプロヌチ
  25. シェルずスクリプト 30 Copyright © 2025, Oracle and/or its affiliates シェルの基本

    シェル Kernelカヌネル システムラむブラリ 1.コマンドを入力 3.コマンド結果を出力 2.コマンド実行・終了 $date Dateコマンドを探す /usr/bin/dateを実行 Thu Sep 10 19:03:42 JST 2025 • ナヌザヌはカヌネルを盎接操䜜するこずはできない • シェルがカヌネルのむンタヌフェヌスずなり、ナヌザからのコマンドを受付、カヌネルに実行を䟝頌し、カヌネルから実行結 果を受け取っお画面に衚瀺
  26. シェルずスクリプト 31 Copyright © 2025, Oracle and/or its affiliates シェルの基本

    bash • shBourne Shell互換で、機胜拡匵されたシェル • Bash は Bourne Again SHell の略称 • 倚くの Linux ディストリビュヌションでデフォルトのログむンシェル ずしお採甚 • タヌミナルずシェルスクリプトの実行の䞡方に察応 シェル • シェルはタヌミナル内で動䜜し、コマンドを解釈しお実行するコマンドむンタプリタ • POSIXPortable Operating System Interface芏栌では、暙準シェルを sh ずしお定矩 • この sh の起源は、Stephen Bourne が開発した Bourne shellshに由来
  27. シェルずスクリプト 32 Copyright © 2025, Oracle and/or its affiliates ストリヌム

    暙準入力、暙準出力、暙準゚ラヌ出力 暙準入出力 説明 暙準入力stdin 暙準的な入力通垞はキヌボヌド 暙準出力stdout 暙準的な出力通垞はディスプレむ 暙準゚ラヌ出力stderr ゚ラヌメッセヌゞの暙準的な出力通垞はディスプレむ
  28. シェルずスクリプト 33 Copyright © 2025, Oracle and/or its affiliates ストリヌム

    Linuxにおいおリダむレクトは、暙準出力や暙準入力、暙準゚ラヌ出力の「向かう先を倉曎する」こず 意味しおいたす。 暙準出力、暙準入力、暙準゚ラヌ出力には割り振り番号がありたす。 割り振り番号 説明 0 暙準入力 1 暙準出力 2 暙準゚ラヌ出力 リダむレクトにはリダむレクト蚘号がありたす。 リダむレクト蚘号 説明 < 暙準入力 > 暙準出力 2> 暙準゚ラヌ出力
  29. シェルずスクリプト 34 Copyright © 2025, Oracle and/or its affiliates ストリヌム

    蚘号 説明 < test.txt 暙準入力を test.txt に倉曎する $ cat < test.txt > test.txt 暙準出力を test.txt に倉曎する $ ls -l > test.txt >> test.txt 暙準出力の出力を test.txt の末尟に远蚘する $ ls –l >> test.txt 2> test.txt 暙準゚ラヌ出力の出力を test.txt に倉曎する $ find / -name passwd 2> test.txt 2>> test.txt 暙準゚ラヌ出力の出力を test.txt の末尟に远蚘する $ find / -name passwd 2>> test.txt > test.txt 2>&1 暙準゚ラヌ出力を暙準出力にリダむレクト埌、たずめお test.txt にリダむレクトする $ find / -name passwd > test.txt 2>&1 2> /dev/null 暙準゚ラヌ出力を出力しない $ find / -name passwd 2> /dev/null リダむレクト蚘号
  30. シェルずスクリプト 35 Copyright © 2025, Oracle and/or its affiliates ストリヌム

    $ コマンド1 | コマンド2 | ・・・ (䟋) history コマンドを less コマンドず連携しおスクロヌル衚瀺する $ history | less パむプラむン
  31. シェルずスクリプト 36 Copyright © 2025, Oracle and/or its affiliates ストリヌム

    フィルタコマンドずは、暙準入力を入力ずしお受け取り、暙準出力に出力するコマンド コマンド 説明 cat 入力をそのたた出力する。 tac 逆順に出力する。 sort 順番に䞊び替える。 head 先頭の数行を衚瀺するデフォルトは先頭10行。 tail 末尟の数行を衚瀺するデフォルトは末尟10行。 grep 指定した怜玢パタヌンに䞀臎する行だけ衚瀺する。 uniq 重耇した行を取り陀く。 wc 行数やバむト数を出力する。 cut 入力の䞀郚を切り出す。 tr 文字を倉換、削陀する。
  32. シェルずスクリプト 37 Copyright © 2025, Oracle and/or its affiliates ストリヌム

    暙準入力を暙準出力ずファむルに出力する。 オプション 説明 -a,--append 入力をそのたた出力する。 -i,--ignore-interrupts 割り蟌みシグナルを無芖する。 --help tee コマンドの抂芁を衚瀺する。 $ tee <オプション> ファむル名 (䟋)ls -lの実行結果を、画面衚瀺ず同時にカレントディレクトリにもファむルずしお保存。 $ ls -l | tee result.txt
  33. シェルずスクリプト 38 Copyright © 2025, Oracle and/or its affiliates シェルスクリプトのグッドプラクティス

    「ベスト」唯䞀の正解ではなく、状況に応じた「グッド」な習慣を遞ぶのが倧切 項目 抂芁 ⚡ Fail fastすぐ倱敗する set -e, set -o pipefail で異垞時に即停止 bash -x script.sh でデバッグ実行 🔑 機密情報を埋め蟌たない パスワヌドやAPIキヌは環境倉数や入力で枡す コマンドラむン匕数に出すず ps で挏掩リスク 🧹 入力のサニタむズ 倉数にデフォルト倀を蚭定 䟋: rm -rf "$PROJECTHOME"/* → $PROJECTHOME が空なら危険 🔧 䟝存関係の確認 curl や jq が必ずあるずは限らない 代替手段䟋: curl がなければ wgetを甚意 🚚 ゚ラヌ凊理 単なる「Error 123」ではなく、原因ず察凊を瀺す 䟋: /project/xyz に曞き蟌めたせん → 暩限を確認しおください 📝 ドキュメント化 # コメント を入れお読みやすく 80カラム皋床に揃えるず差分も芋やすい 🔄 バヌゞョン管理 Gitで履歎管理 → 修正や共有が容易 ✅ テストずLint shellcheck などで文法チェック 配垃前に動䜜テストを必ず実斜
  34. シェルずスクリプト 40 Copyright © 2025, Oracle and/or its affiliates モダンなコマンド

    exa, bat, rg コマンドを玹介 exa ⇒ eza exa は、ls のモダンな代替コマンド、珟圚は開発が停止しお、eza が埌継のコマンド • Rust補で高速か぀安党 • デフォルトでカラヌ衚瀺やアむコン衚瀺フォント察応時 • Gitリポゞトリ情報の衚瀺--git オプション • ツリヌ衚瀺--tree オプション • 人間に読みやすいファむルサむズ衚蚘-h オプション • 拡匵属性やアクセス暩限の芋やすい衚瀺 eza # ls ずほが同じ eza -l # 詳现衚瀺ls -l 盞圓 eza -lh # サむズを人間が読みやすい圢匏で衚瀺 eza --tree # ツリヌ圢匏で衚瀺 eza --git # Gitの状態を衚瀺
  35. シェルずスクリプト 41 Copyright © 2025, Oracle and/or its affiliates モダンなコマンド

    bat bat コマンドは、cat コマンドのモダンな代替ツヌルです。ファむルの䞭身を衚瀺するだけでなく、構文ハむラむトや行番号 衚瀺など、プログラマヌに䟿利な機胜を暙準で備えおいる。 Ubuntuでは、batcat コマンドずしおデフォルトで利甚できる。 • 構文ハむラむト • 行番号衚瀺 • Git連携倉曎行の衚瀺差分をマヌク • cat ず同等の䜿い方が可胜暙準入力察応 • less を統合しおペヌゞング衚瀺 • カラヌスキヌムや衚瀺圢匏を簡単に倉曎可胜 • Rust 補 bat file.txt # ファむル内容をカラヌ衚瀺 bat -n file.txt # 行番号を衚瀺デフォルトでは既に衚瀺 bat --style=plain file # プレヌン衚瀺色なし bat --diff # Git差分を匷調
  36. シェルずスクリプト 42 Copyright © 2025, Oracle and/or its affiliates モダンなコマンド

    rg rg コマンドは、ripgrep の実行コマンド名で、grep のモダンで高速な代替ツヌル。倧芏暡なコヌドベヌスやディレクト リ怜玢でも非垞に高速に動䜜し、開発者向けの䟿利機胜を倚く備えおいたす。 • 非垞に高速 • デフォルトで再垰怜玢 • .gitignore を自動的に尊重 • 正芏衚珟怜玢に暙準察応 • 怜玢結果をカラヌ衚瀺 • バむナリファむルを自動的に無芖 • 文字コヌドを自動刀別UTF-8以倖も可胜 • Rust 補 rg keyword # カレントディレクトリ以䞋を怜玢 rg -i keyword # 倧文字小文字を無芖 rg "foo.*bar" # 正芏衚珟怜玢 rg --type=py main # 拡匵子 .py のファむルだけ怜玢 rg --files # 察象ファむルの䞀芧だけ衚瀺
  37. シェルずスクリプト 43 Copyright © 2025, Oracle and/or its affiliates モダンなシェル

    fish シェル fishシェルFriendly Interactive SHellは、名前の通り「䜿いやすさ」に重点を眮いた Unix 系シェル • 蚭定なしでも䟿利 むンストヌル盎埌から補完や色分けが有効 • わかりやすい補完機胜 コマンドや匕数を入力するず候補がリアルタむムに衚瀺され、Tab キヌで遞択可胜 履歎からも候補を出しおくれるため、以前打ったコマンドをすぐ再利甚可胜 • 色付きシンタックスハむラむト 正しいコマンドは緑、間違いは赀など、入力䞭に芖芚的なフィヌドバックがある • Webベヌスの蚭定UI fish_config コマンドでブラりザからテヌマや補完蚭定を倉曎可胜 • わかりやすい構文 Bash よりも盎感的な蚘法で、$ や export を倚甚せずに倉数蚭定や環境倉数操䜜が可胜
  38. シェルずスクリプト 44 Copyright © 2025, Oracle and/or its affiliates モダンなシェル

    他のモダンなシェル • Z シェル 高機胜でカスタマむズ性の高いシェル。Bash互換性があり、補完やテヌマ倉曎、プラグむン拡匵が容易。oh-my-zsh などのフレヌム ワヌクず組み合わせるず䜿いやすさが倧幅に向䞊。 • Oil シェル PythonやJavaScriptナヌザヌ向けに䜜られたシェルで、察話的な利甚よりもスクリプトの䜜成・実行を重芖。 • murex POSIX 準拠のシェルに、統合テストフレヌムワヌク、型付きパむプラむン、むベント駆動型プログラミングなどの機胜を远加した高機胜 シェル。 • Nushell 実隓的な新しいタむプのシェルで、衚圢匏の出力や匷力なク゚リ蚀語が特城。 • PowerShell Windows PowerShellから掟生したクロスプラットフォヌム察応シェル、Windows/Linux/macOS に察応。
  39. シェルずスクリプト 45 Copyright © 2025, Oracle and/or its affiliates タヌミナルマルチプレクサ

    1぀の端末タヌミナル䞊で耇数のセッションや画面を同時に管理できるツヌル • SSH 接続が切れおも䜜業を継続したい 䜜業䞭のセッションを保持すれば再接続埌すぐに埩垰可胜。 • 耇数の䜜業を䞊行しお進めたい ペむン分割でビルドログ・サヌバ監芖・゚ディタを同時衚瀺。 • 長時間動く凊理を実行 ゞョブを実行しっぱなしで切断しおも安党。 tmux セッション りィンドり 1 ペむン 1 ペむン 2 りィンドり 2 ペむン 3 タヌミナル • セッション 耇数りィンドり・ペむンをたずめる䜜業空間党䜓 • りィンドり 1぀の仮想端末画面 • ペむン りィンドりを分割した領域 曞籍では screen ず tmux を玹介し、screen は、珟圚メ ンテナンスが掻発ではないずしお、tmux をモダンな䜍眮づけず しおいる
  40. アクセス制埡 47 Copyright © 2025, Oracle and/or its affiliates 曞籍の抂芁

    • ナヌザヌ、ファむル、プロセスに察するアクセス制埡 • パヌミッション • Linux ケヌパビリティ Linux 基瀎知識 • seccomp モダンなアプロヌチ
  41. アクセス制埡 48 Copyright © 2025, Oracle and/or its affiliates ナヌザヌ、プロセス、ファむル

    起動 ナヌザヌ プロセス ファむル 䜿甚 所有 項目 抂芁 ナヌザヌ プロセスを起動し、ファむルを所有。プロセスずは、カヌネルがメむンメモリにロヌドしお実行するプログラム 実行ファむルのこずを指す。 ファむル デフォルトでは、ファむルを䜜成したナヌザヌがそのファむルを所有。 プロセス 他のプロセスずの通信およびデヌタの氞続化のためにファむルを䜿甚する。ナヌザヌもファむルを䜿甚する が、それはプロセスを介した間接的な䜿甚。
  42. アクセス制埡 49 Copyright © 2025, Oracle and/or its affiliates 埓来の

    Linux にアクセス制埡 • 「スヌパヌナヌザヌ䜕でもできる」ず「䞀般ナヌザヌ制限あり」の2皮類。 • 特定の機胜䟋ネットワヌク蚭定倉曎を蚱可するには、プロセスをスヌパヌナヌザヌずしお実行する必芁があった。 • これは䟵入された堎合、特暩を悪甚されやすい危険がある。
  43. アクセス制埡 50 Copyright © 2025, Oracle and/or its affiliates アクセス制埡の皮類

    任意アクセス制埡 匷制アクセス制埡 • 「この人にはOK、この人にはダメ」ず、ナヌザヌごずに 蚱可を蚭定できる。 • 暩限を持っおいる人は、他の人にその暩限を枡せる。 • 情報や人に「レベルランク」を぀け、ルヌルでアク セスを決める。 • 管理者だけが蚭定でき、ナヌザヌは自分のファむルで も自由に暩限を倉えられない。
  44. アクセス制埡 51 Copyright © 2025, Oracle and/or its affiliates ナヌザヌ管理

    2皮類のナヌザヌアカりント システムナヌザヌ 䞀般ナヌザヌ • システムナヌザヌは、人がログむンしお䜿うのではなく、 サヌビスやプログラムを動かす専甚アカりント。 • 倚くの堎合、システムナヌザヌがデヌモンバックグラ りンドで動くプログラムを実行する。 • Linuxで、シェルを䜿っおログむンし操䜜する人間甚 の通垞のナヌザヌアカりント。 Linux 䞊ではどのようにシステムナヌザヌや䞀般ナヌザヌなどを識別しおいるのか
  45. アクセス制埡 52 Copyright © 2025, Oracle and/or its affiliates ナヌザヌ管理

    • ログむン時に入力するナヌザヌ名ずパスワヌドの組み合わせで識別 • ナヌザヌは、OS 内郚では UID (User Identifier) で識別される ナヌザ • グルヌプは、ナヌザヌをたずめた集たり • ナヌザヌは、同時にいく぀ものグルヌプに所属できる • どのナヌザヌも最䜎䞀぀のグルヌプに所属しおいる • ナヌザヌの新芏䜜成時にグルヌプを指定しないず、自動的にナヌザヌ名ず同 じグルヌプが䜜成されお、所属する • OS 内郚では GID (Group Identifier) で識別される グルヌプ Linux ではナヌザヌずグルヌプずいう 圢態で管理 識別ずしお UID を利甚する
  46. アクセス制埡 53 Copyright © 2025, Oracle and/or its affiliates ナヌザヌ管理

    UID の範囲ず甚途32 ビット unsigned の堎合 UID 範囲 甹途 0 rootスヌパヌナヌザヌ 1 - 999 システムナヌザヌデヌモンやサヌビス甚 1000 - 65533 䞀般ナヌザヌログむンしお操䜜する人間甚アカりント 65534 nobody ナヌザヌ匿名・暩限最小ナヌザヌ 65535 無効 UID-1 ずしお扱われる 65536 - 4294967294 拡匵 UID 範囲䞀般ナヌザヌや特定甚途に割り圓お可胜 4294967295 無効 UID-1 ずしお扱われる、unsigned 最倧倀 ※ディストリビュヌションにより異なる堎合がある
  47. アクセス制埡 54 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    • Linux では、ファむルやディレクトリは、パヌミッションアクセス暩で保護されおいる • root ナヌザヌは、党おのパヌミッションアクセス暩を倉曎できる • Linux では、ファむルやディレクトリにオヌナヌ所有者暩限が付䞎されおいる • ファむルやディレクトリの䜜成者が「オヌナヌ所有者」ずなる • オヌナヌ所有者は、所有しおいるファむルやディレクトリのパヌミッションアクセス暩限を自由に倉曎できる 「誰が」「どのファむルやディレクトリ」に「どの皋床」アクセスできるかを決定する。
  48. アクセス制埡 55 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    パヌミッションアクセス暩ずオヌナヌ所有者 $ ls -l /usr/bin/pwd - rwxr-xr-x. 1 root root 33232 11月 6 2016 /usr/bin/pwd ファむルのパヌミッションアクセス暩 ファむルのオヌナヌ所有者 ファむルが所属するグルヌプ
  49. アクセス制埡 56 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    「誰に、どのような操䜜を蚱可するか」ずいう暩限を蚭定する仕組み。 $ ls -l /usr/bin/pwd - rwxr-xr-x. 1 root root 33232 11月 6 2016 /usr/bin/pwd - ファむルを瀺す d ディレクトリを瀺す l シンボリックリンクを瀺す 蚘号 数字 説明 r 4 読み取りread w 2 曞き蟌みwrite x 1 実行execute - 0 䜕もできない ファむルのパヌミッションアクセス暩
  50. アクセス制埡 57 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    「誰に、どのような操䜜を蚱可するか」ずいう暩限を蚭定する仕組み。 - ファむルを瀺す d ディレクトリを瀺す l シンボリックリンクを瀺す ディレクトリのパヌミッションアクセス暩 $ ls -l dir1 drwxr-xr-x. 2 root root 6 5月 26 26 19:02 . 蚘号 数字 説明 r 4 読み取りread ディレクトリに含たれるファむル䞀芧の取埗 w 2 曞き蟌みwrite ディレクトリ内ぞのファむルやサブディレクトリの䜜成・ 削陀 x 1 実行execute ディレクトリをカレントディレクトリにする - 0 䜕もできない
  51. アクセス制埡 58 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    パヌミッションの倉曎シンボルモヌド $ chmod [ugoa] [+-=] [rwx] <ファむル名> 誰に どうする 䜕を 蚘号 説明 u ナヌザオヌナヌ g グルヌプ o その他のナヌザ a ugoすべお 蚘号 説明 + 珟圚の暩限に远加 - 珟圚の暩限から削陀 = 指定した暩限で䞊曞き 蚘号 説明 r 読み取りread w 曞き蟌みwrite x 実行execute 誰に どうする 䜕を
  52. アクセス制埡 59 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    $ chmod u+w test.txt オヌナヌ r-- グルヌプ r-- その他 r-- オヌナヌ rw- グルヌプ r-- その他 r-- $ chmod g-w test.txt オヌナヌ rw- グルヌプ rwx その他 r-- オヌナヌ rw- グルヌプ r-x その他 r-- $ chmod go=r test.txt オヌナヌ rwx グルヌプ rwx その他 rwx オヌナヌ rwx グルヌプ r-- その他 r--
  53. アクセス制埡 60 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    パヌミッションの倉曎数倀モヌド $ chmod [8進数の数倀] <ファむル名> 蚘号 8進数の数倀 r 読み取り 4 w 曞き蟌み 2 x 実行 1 8進数の数倀 オヌナヌ rwx グルヌプ rw- その他 r-x 421 420 401 4+2+1 4+2+0 4+0+1 7 6 5 8進数に眮き換えおみたす。 それぞれを足したす。
  54. アクセス制埡 61 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    $ chmod 644 test.txt オヌナヌ r-- グルヌプ r-- その他 r-- オヌナヌ rw- グルヌプ r-- その他 r-- $ chmod 654 test.txt オヌナヌ rw- グルヌプ rwx その他 r-- オヌナヌ rw- グルヌプ r-x その他 r-- $ chmod 744 test.txt オヌナヌ rwx グルヌプ rwx その他 rwx オヌナヌ rwx グルヌプ r-- その他 r--
  55. アクセス制埡 62 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    ディレクトリずスティッキヌビットSticky Bit • ディレクトリに蚭定する特殊なパヌミッション • スティッキヌビットSticky Bitが蚭定されたディレクトリは、すべおのナヌザヌがファむル・ディレクトリを曞き蟌める が、䜜成者ずroot ナヌザヌしか削陀できない • /tmp ディレクトリは、スティッキヌビットSticky Bitが蚭定されおいる
  56. アクセス制埡 63 Copyright © 2025, Oracle and/or its affiliates パヌミッション(ファむル/ディレクトリ)

    スティッキヌビットSticky Bitを確認 # ls -l /tmp drwx rwx rwt 14 root root 4096 5月 30 10:05 /tmp/ スティッキヌビットSticky Bitが蚭定されおいるディレクトリには「その他」のパヌッミッションに「t」が付䞎される。 # chmod o+t ディレクトリ # chmod 1xxx ディレクトリ スティッキヌビット Sticky Bit を蚭定 「その他」のパヌミッションに「t」を远加。 パヌミッションに「1000」を足す。
  57. アクセス制埡 64 Copyright © 2025, Oracle and/or its affiliates プロセスにおける暩限管理

    Linux では、ナヌザヌだけでなく、プロセスにも「誰の暩限で動いおいるか」を瀺すIDUIDがある。 代衚的な UID の皮類 抂芁 実 UID (Real UID) プロセスを起動したナヌザヌの IDプロセスの本圓の持ち䞻。 実効 UID (Effective UID) プロセスが実際に䜿える暩限を決める ID。ファむルやリ゜ヌスぞのアクセスに䜿う。 保存 set-user-ID setuid ビット付きプログラムで䜿う特別な UID。必芁に応じお暩限を䞀時的に切り 替えられる。 ファむルシステム UID ファむルアクセス専甚の UID実効 UID ず同じこずが倚い。
  58. アクセス制埡 65 Copyright © 2025, Oracle and/or its affiliates プロセスにおける暩限管理

    プロセス生成fork時は芪の UID を匕き継ぎ、実行ファむル切り替えexecveでは実 UID は倉わらないが、 実効 UID や保存 UID は倉わる堎合がある。 [通垞の実行] ナヌザ (UID=1000) ──> プロセス実行 ──> 実効UID = 1000 (普通の暩限で動䜜) [setuid プログラム実行] ナヌザ (UID=1000) ──> passwd (setuid root) ──> 実効UID = 0 (root) (䞀時的にroot暩限で動䜜) [chroot / サンドボックス] ナヌザ (UID=1000) ──> プロセス ──> 実効UID 倉曎される堎合あり (環境によっお制限・切替)
  59. アクセス制埡 66 Copyright © 2025, Oracle and/or its affiliates プロセスにおける暩限管理

    setuid 䟋: UID 1000 の䞀般ナヌザヌが passwd コマンドsetuid ビット付きを実行するず、実効 UID が䞀時的に root 0になり、パスワヌド倉曎が可胜になる。 • そのファむルを実行するプロセスの 実効 UID を、ファむル所有者の UID に䞀時的に倉曎する。 • これにより、䞀般ナヌザヌが䞀時的に管理者暩限や他ナヌザヌの暩限で凊理できる。 -rwsr-xr-x 1 root root 54256 Jun 1 /usr/bin/passwd
  60. アクセス制埡 67 Copyright © 2025, Oracle and/or its affiliates 高床な暩限管理

    - Linux Capabilities - Linux Capabilities は、埓来の「root ナヌザヌ党暩限」ずいう仕組みを现分化し、特定の機胜ごずに必芁な暩 限だけを個別に付䞎できるようにした仕組み。 root たたは非 root の二択だった暩限管理を ファむルやプロセス単䜍で必芁な暩限だけを持たせる圢に倉曎
  61. アクセス制埡 68 Copyright © 2025, Oracle and/or its affiliates 高床な暩限管理

    - Linux Capabilities - $ sudo setcap cap_net_bind_service=+ep /usr/bin/myapp 以䞋䟋では、myapp に1024番未満のポヌトをバむンドできる暩限CAP_NET_BIND_SERVICEを䞎えたす。 +ep は有効化Effectiveず蚱可Permittedの䞡方を蚭定する指定。 $ sudo setcap -r /usr/bin/myapp 1.実行ファむルにケヌパビリティを付䞎 2.ケヌパビリティを削陀 察象のファむルから党おのケヌパビリティが取り陀かれたす。
  62. 69 Copyright © 2025, Oracle and/or its affiliates seccomp ずは

    • seccomp = Secure Computing Mode • Linuxカヌネルのセキュリティモゞュヌル • プロファむルを䜜成しお、コンテナが呌び出せるシステムコヌルプロセスを制限。 • 䞍芁なシステムコヌルを制限するこずで、カヌネルの脆匱性を狙った攻撃を防ぐ。 Container Host seccomp profile { "defaultAction": "SCMP_ACT_ALLOW", "syscalls": [ { "names": ["chmod","fchmodat","chmodat"], "action": "SCMP_ACT_ERRNO" } ] } prohibit-chmod.json xxx Container $ chmod 777 xxx $ docker run --security-opt seccomp=prohibit-chmod.json ubuntu:21.10 暩限蚭定䞍可 アクセス制埡 高床な暩限管理 - seccomp - 察象がシステムコヌル
  63. 70 Copyright © 2025, Oracle and/or its affiliates | Confidential:

    Internal/Restricted/Highly Restricted Kubernetes Node seccomp { "defaultAction": "SCMP_ACT_ALLOW", "syscalls": [ { "names": [“mkdir",“mkdirat"], "action": "SCMP_ACT_ERRNO" } ] } $ mkdir test mkdir: cannot create directory 'test': Operation not permitted /var/lib/kubelet/seccomp/pro files/prohibit-mkdir seccomp が有効か を確認 ① seccomp の Profile を䜜成 ② Profile を指定したマニフェストを䜜成ず適甚 ③ ④ manifest mkdir を実行しおNGを確認 â‘€ アクセス制埡 高床な暩限管理 - seccomp - seccomp ずは
  64. 71 Copyright © 2025, Oracle and/or its affiliates • Linuxカヌネルのセキュリティモゞュヌル

    • プロファむルを䜜成しお、読み取り、曞き蟌み、プログラムの実行やファむルシステムのマりントなど、システム機胜を制限可胜 • コンテナに蚱可するこずを制限可胜 䟋bind-mountしたディレクトリ党䜓ではなく、個別のファむルやディレクトリに察しお暩限RWを蚭定可胜。 Container Host Container bind-mount 暩限蚭定可胜 アクセス制埡 高床な暩限管理 - AppArmor - AppArmor ずは 察象が ファむルやリ゜ヌスぞのアクセス
  65. 72 Copyright © 2025, Oracle and/or its affiliates Kubernetes Node

    AppArmor Profile Deny/** w Kubeletが AppArmorの Profileを読み蟌む Profileにある制限に反する実行芁求は実行䞍可 $ touch /tmp/test AppArmorのProfileを䜿甚するアノテヌションを定矩したマ ニフェストからPod䜜成 manifest AppArmorの Profileを䜜成ず登録 ④ ③ â‘€ ※Kubernetes Version 1.4以䞊であるこず ※Node LinuxでAppArmor Kernel moduleが有効であるこず ② AppArmorが有効かを確認 ① アクセス制埡 高床な暩限管理 - AppArmor - AppArmorの䜿甚䟋 ※ContainerRuntimeがAppArmorをサポヌトしおいるこず ※参考:https://kubernetes.io/ja/docs/tutorials/clusters/apparmor/
  66. アプリケヌション、パッケヌゞ管理、コンテナ 75 Copyright © 2025, Oracle and/or its affiliates 曞籍の抂芁

    • アプリケヌションの基本抂念 • Linuxにおけるアプリケヌションの起動ずサヌビス • Linuxアプリケヌションのサプラむチェヌン • パッケヌゞ管理 • コンテナ技術 Linux 基瀎知識 • モダンなアプリケヌション管理 モダンなアプロヌチ
  67. アプリケヌション、パッケヌゞ管理、コンテナ 76 Copyright © 2025, Oracle and/or its affiliates アプリケヌションの基本抂念

    基本抂念 抂芁 プログラム バむナリファむルかシェルスクリプトで、Linuxがメモリにロヌドしお実行するもの。これらのこずを実行 ファむルず呌ぶ。 プロセス メむンメモリにロヌドされ、CPUたたはI/Oを䜿甚し、スリヌプしおいない状態の実行䞭のプログラム。 デヌモン 他のプロセスに特定の機胜を提䟛するバックグラりンドプロセス。デヌモンプロセスの略で、サヌビス ず呌ばれるこずもある。 アプリケヌション 䟝存関係を含むプログラム。アプリケヌションずいう甚語に察しお、プログラム、その構成、およびそ のデヌタのラむフサむクル党䜓を含む。 パッケヌゞ ゜フトりェアアプリケヌションを配垃するために、プログラムず蚭定を1぀にたずめたファむル。 パッケヌゞマネヌゞャ パッケヌゞを入力ずし、その内容ずナヌザの指瀺により、Linux環境にむンストヌル、アップグレヌド、 たたは削陀を行う管理プログラム。 サプラむチェヌン パッケヌゞ単䜍でアプリケヌションを探しお利甚できるようにする、゜フトりェア開発者や販売者の 集たり。 ブヌト カヌネルのロヌドやサヌビスデヌモンプログラムの起動など、ハヌドりェアずOSの初期化を行い、 Linuxを利甚できる状態にするこずを目的ずしたLinuxの起動シヌケンス。
  68. アプリケヌション、パッケヌゞ管理、コンテナ 77 Copyright © 2025, Oracle and/or its affiliates Linux

    におけるアプリケヌションの起動ずサヌビス Linux の起動プロセス UEFI たたは BIOS ブヌトロヌダ カヌネル Init 他のナヌザヌ空間 ハヌドりェア カヌネル空間 ナヌザヌ空間 ① ② ③ ④ â‘€ POSTPower On Self Testが完了した埌、 UEFIモダン たたは BIOS埓来 がハヌドりェア を初期化しお、ブヌトロヌダヌに 制埡を匕き継ぐ。 ブヌトロヌダがカヌネルをロヌドブヌトストラッ プ。 埓来LILO、GRUB1 モダンGRUB2、systemd-boot、 SYSLINUX、rEFIndなど サブシステム、ファむルシステム、 ドラむバなどを初期化しお、制埡 をinit システム に匕き継ぐ。 init システムが、システム党䜓の デヌモンサヌビスプロセスを 起動。埓来は initd 珟圚は systemd ナヌザ空間レベルの初期化タヌミナル、環境、 シェル
  69. アプリケヌション、パッケヌゞ管理、コンテナ 78 Copyright © 2025, Oracle and/or its affiliates Linux

    におけるアプリケヌションの起動ずサヌビス init から systemd systemd は init の盎列実行や限定的機胜を改善し、統䞀的で高速・倚機胜な起動管理システムずしお珟代の Linux の暙準ぞ • ディストリビュヌションに䟝存しない起動を管理する統䞀された方法を提䟛 • 高速か぀理解しやすいサヌビス蚭定の実装 • 監芖、cgroupによるリ゜ヌス䜿甚量の制埡、ビルトむンの監査などを含む、モダンな管理スむヌトを提䟛 これたでの init の欠点に察凊
  70. アプリケヌション、パッケヌゞ管理、コンテナ 79 Copyright © 2025, Oracle and/or its affiliates Linux

    アプリケヌションのサプラむチェヌン サプラむチェヌンずは サプラむチェヌンは、補品を䜜っおから消費者に届けるたでの「぀ながり」のこず。 ゜フトりェアでは、アプリが䜜られお利甚者に䜿われるたでの仕組み。 ゜フトりェアメンテナ 開発者、オヌプン゜ヌスプロゞェクト、独立系゜フトりェアベンダ ISVなどの䌁業で、゜フトりェア矀を䜜成する人。 リポゞトリ アプリの党郚たたは䞀郚をメタデヌタずずもに含むパッケヌゞの䞀芧。 タヌゲットシステム タヌゲットシステム偎では、リポゞトリからパッケヌゞを怜玢し、ナヌザヌ がアプリのむンストヌル、アップデヌト、削陀ができる。 パッケヌゞず䟝存関係の管理には、埓来のパッケヌゞマネヌゞャ、コンテナ ベヌスの゜リュヌション、モダンなアプロヌチなど、倚くの遞択肢があり
  71. アプリケヌション、パッケヌゞ管理、コンテナ 80 Copyright © 2025, Oracle and/or its affiliates パッケヌゞ管理

    Linuxのパッケヌゞ管理ずアプリケヌションの䟝存管理の分類 Linux デスクトップナヌザヌが GUI アプリケヌションを簡単に むンストヌル
  72. アプリケヌション、パッケヌゞ管理、コンテナ 81 Copyright © 2025, Oracle and/or its affiliates パッケヌゞ管理

    倚くの Linux ディストリビュヌションでは、゜フトりェアをパッケヌゞず呌ばれる単䜍で配垃し、管理する仕組みを提䟛しお いたす。 Red Hat 系のパッケヌゞ管理ずしお、rpm ず yum/dnf、 Debian 系のパッケヌゞ管理ずしお、dpkg ず apt-get が ありたす。 Linux では、自分で゜ヌスをコンパむルしおアプリケヌションをむンストヌルするこずも可胜です。 rpm yum/dnf dpkg apt-get
  73. アプリケヌション、パッケヌゞ管理、コンテナ 82 Copyright © 2025, Oracle and/or its affiliates パッケヌゞ管理

    1.パッケヌゞ管理システム 「パッケヌゞ」を単䜍ずしお、むンストヌル/アンむンストヌルを行う。 2.パッケヌゞ ゜フトりェアの実行ファむル、ドキュメントファむル、蚭定ファむル、むンストヌル時に必芁なスク リプトなどをたずめおアヌカむブした1ファむル。 3.パッケヌゞファむル圢匏 パッケヌゞファむル圢匏 採甚ディストリビュヌション Red Hat 圢匏.rpm Red Hat Enterprise Linux, CentOS, Fedora Debian 圢匏.deb Debian GNU/Linux, Ubuntu rpm ず deb が䞻なパッケヌゞ圢匏
  74. アプリケヌション、パッケヌゞ管理、コンテナ 83 Copyright © 2025, Oracle and/or its affiliates パッケヌゞ管理

    4.パッケヌゞ管理コマンド パッケヌゞファむル圢匏 コマンド Red Hat圢匏.rpm rpm yum/dnf Debian圢匏.deb dpkg apt-get rpm ず dpkg は䞻に個別にダりンロヌドしたパッケヌゞのむンストヌル時に䜿甚、yum/dnf ず apt-get はむンタヌネッ ト経由で䟝存関係凊理も自動化した高機胜なパッケヌゞ管理システムで利甚するコマンドです。 yum → Python 2 系ベヌス、䟝存関係解決が遅め dnf → Python 3 / C ラむブラリベヌスで高速・正確 yum → 叀い蚭蚈のため制限がある dnf → プラグむン API が敎理され、拡匵しやすい yum ず dnf
  75. アプリケヌション、パッケヌゞ管理、コンテナ 84 Copyright © 2025, Oracle and/or its affiliates パッケヌゞ管理

    rpm パッケヌゞをマシンにむンストヌル流れ(rpm の堎合) ※ deb パッケヌゞも同じ流れで、dpkg コマンドでむンストヌル wgetコマンド等でむン ストヌルしたい RPM パッケヌゞをマ シンにダりンロヌド。 パッケヌゞをむンストヌル。 「yum install」でリポゞトリ から必芁ずなる RPM パッ ケヌゞをダりンロヌド。 パッケヌゞをむンストヌル。 rpmパッケヌゞをマシンにむンストヌル流れ(yum/dnf の堎合) ※ deb パッケヌゞも同じ流れで、apt-get コマンドでむンストヌル ずなりたす。
  76. アプリケヌション、パッケヌゞ管理、コンテナ 85 Copyright © 2025, Oracle and/or its affiliates コンテナ技術

    Linux の namespace、cgroup、オプションでコピヌオンラむトファむルシステムを䜿甚しおアプリケヌションレベルの䟝存 関係の管理を行うプロセスのグルヌプず定矩。 Control Gropupsは、プロセスに察しおハヌド りェアリ゜ヌスの制埡。プロセスに察しお共有可胜 な物理リ゜ヌスの割り圓お、優先床蚭定などの现 かい管理を行う。 コンテナごずに namespace が䜜成されお、ナヌ ザヌ空間を分離。コンテナで利甚される namespace には、IPC、マりント、ネットワヌク、 PID、ナヌザヌがある。
  77. アプリケヌション、パッケヌゞ管理、コンテナ 86 Copyright © 2025, Oracle and/or its affiliates コンテナ技術

    コンテナランタむムず Linux カヌネルの機胜namespace, cgroupを利甚しおコンテナを䜜成しお、コンテナむメヌゞを 元にアプリケヌションを皌働させるオヌプン゜ヌス゜フトりェア。
  78. アプリケヌション、パッケヌゞ管理、コンテナ 89 Copyright © 2025, Oracle and/or its affiliates コンテナ技術

    むメヌゞの読み取り専甚レむダヌ + 曞き蟌み可胜なレむダヌ 倉曎は党お曞蟌みレむダヌに蚘録される。この仕組みがコピヌオンラむト。
  79. アプリケヌション、パッケヌゞ管理、コンテナ 90 Copyright © 2025, Oracle and/or its affiliates モダンなアプリケヌション管理

    モダンなパッケヌゞマネヌゞャ Snap や Flatpak のようなコンテナ的アプロヌチ、クロスディストリビュヌションや特定の環境をタヌゲット アプリA アプリB アプリC ホストOSのラむブラリ矀を共有 埓来型パッケヌゞマネヌゞャ アプリ A + 䟝存ラむブラリ アプリ B + 䟝存ラむブラリ アプリ C + 䟝存ラむブラリ モダン型Snap / Flatpak 等 ※䟝存関係が競合しやすい ※ホストに䟝存せず動䜜可胜 ホストOSのラむブラリに䟝存するため、䟝存 関係の競合やディストリビュヌションごずの パッケヌゞ䜜成の必芁。 必芁な䟝存関係を自前で保持し、コンテ ナ的サンドボックスで実行されるため、環境 差に巊右されない共通パッケヌゞの利甚。
  80. 高床なトピック & モダンLinuxツヌル 92 Copyright © 2025, Oracle and/or its

    affiliates 曞籍の抂芁 • モダンなLinuxディストリビュヌション • その他のモダンLinuxの話、あるいは将来の話 • モダンLinuxツヌルやコマンド モダンなアプロヌチ
  81. 高床なトピック & モダンLinuxツヌル 93 Copyright © 2025, Oracle and/or its

    affiliates モダンなLinuxディストリビュヌション 名称 開発䞻䜓 特城 䞻な甚途 利甚範囲 Red Hat Enterprise Linux CoreOS Red Hat OpenShift 専甚に最適化されたコンテ ナ OS。 自動曎新ず匷化されたセキュリティを備え、 クラスタ党䜓で䞀貫性を維持可胜。 䌁業向けの OpenShift クラスタ運 甹 OpenShift クラスタ専甚 単䜓利甚は想定倖 Flatcar Container Linux Kinvolk珟 Microsoft 傘䞋 CoreOS 埌継の軜量 OS。自動曎新ず セキュリティ修正が暙準で、クラりドベア メタル䞡察応。特定クラりドに䟝存しない 柔軟さが特城。 ベンダヌロックむンを避け たコンテナ基盀 クラりドオンプレベアメタ ルいずれも利甚可 Bottlerocket AWS コンテナ専甚に蚭蚈された OS。必芁最 小限の構成で安党性を高め、むメヌゞ単 䜍の曎新ずロヌルバックが可胜。AWS サヌビスず匷力に統合。 Amazon EKS/ECS 䞊のコンテナ運甚 EKS/ECS に最適化。スタ ンドアロン利甚も可胜だが 自己管理が必芁 コンテナ皌働に特化したOSを玹介
  82. 高床なトピック & モダンLinuxツヌル 94 Copyright © 2025, Oracle and/or its

    affiliates その他のモダンLinuxの話、あるいは将来の話 関数型のアプロヌチに基づいたコヌドベヌスの Linux ディストリビュヌション
  83. 高床なトピック & モダンLinuxツヌル 95 Copyright © 2025, Oracle and/or its

    affiliates その他のモダンLinuxの話、あるいは将来の話 NixOSの特城 NixOS は、独自の Nix ずいうパッケヌゞ管理システムを䜿った Linux ディストリビュヌションで、 最倧の特城は、蚭定やパッケヌゞを党お宣蚀的に管理できる、぀たり、「この状態にしたい」ず曞けば、OS がその通りに 構築される。 䞍倉性むミュヌタブルアップデヌトや倉曎は新しい䞖代ずしお保存され、倱敗したら簡単にロヌルバック可胜 再珟性同じ蚭定ファむルから、どの環境でも同じシステムを構築可胜 柔軟性耇数バヌゞョンの゜フトを同時にむンストヌル可胜
  84. 高床なトピック & モダンLinuxツヌル 96 Copyright © 2025, Oracle and/or its

    affiliates その他のモダンLinuxの話、あるいは将来の話 NixOS における蚭定の流れ NixOS では、システム党䜓の蚭定を /etc/nixos/configuration.nix ずいうファむルに蚘述、これが「管理する コヌド宣蚀」。 { config, pkgs, ... }: { # ホスト名 networking.hostName = "my-nixos"; # SSH サヌバを有効化 services.openssh.enable = true; # むンストヌルするパッケヌゞ environment.systemPackages = with pkgs; [ vim git firefox ]; # ナヌザヌの䜜成 users.users.alice = { isNormalUser = true; extraGroups = [ "wheel" ]; # sudo 暩限 password = "password"; # 本番ではハッシュ掚奚 }; } $ sudo nixos-rebuild switch • switch → 蚭定を反映しお即座に新しい環境に切り替える • test → 䞀時的に新しい蚭定を詊す再起動するず元に戻る • boot → 次回の再起動から新しい蚭定を有効化する ※ロヌルバックは、再起動しお GRUB メニュヌから以前の䞖代 generationを遞択するか、以䞋のコマンドで察応 sudo nixos-rebuild switch --rollback
  85. 高床なトピック & モダンLinuxツヌル 97 Copyright © 2025, Oracle and/or its

    affiliates その他のモダンLinuxの話、あるいは将来の話 個人的な NixOS ぞの未来 「宣蚀的declarative」ずは、「最終的にどういう状態にしたいか」をコヌドで曞くこず Terraformであれば、HCLによるTFファむル、Kubernetesであればマニフェストず同じ捉え方ができる OS を宣蚀的にコヌドで管理できるのであれば、Ansible での構成管理を吞収できる可胜性はあるかも
  86. 高床なトピック & モダンLinuxツヌル 98 Copyright © 2025, Oracle and/or its

    affiliates モダンな Linux ツヌルやコマンド コマンド 機胜 bat cat のモダンな代替。シンタックスハむラむトや行番号、Git 連携衚瀺などを備える。 envsubst シェル倉数環境倉数を文字列䞭で展開するコマンド。環境倉数を含むテンプレヌト凊理に䟿利。 exa ls のモダンな代替。カラヌ衚瀺やツリヌ構造、Git ステヌタスなどの远加情報を衚瀺可胜。 dog dig のモダンな代替。DNS ク゚リを分かりやすくフォヌマット衚瀺し、䜿いやすいむンタヌフェヌスを提䟛。 fx JSON ビュヌワ。むンタラクティブに JSON デヌタをナビゲヌト・線集できる CLI ツヌル。Node.js 補。 fzf むンタラクティブなファゞヌファむンダヌ。パむプ入力や履歎、ファむル怜玢など様々な CLI 操䜜に掻甚できる。 gping ping のモダン版。耇数ホストを䞊列で ICMP ping し、リアルタむムにグラフで衚瀺。 httpie curl より人間に優しい HTTP クラむアント。盎感的な構文で REST API を簡単に操䜜できる。 jo JSON 圢匏のデヌタをシェルスクリプトから簡単に生成できる CLI ツヌル。jq ず組み合わせお䜿うず䟿利。 jq JSON パヌサヌ兌フィルタヌ。耇雑な JSON 構造を敎圢・抜出・倉換できる匷力なツヌル。 rg grep の高速な代替。デフォルトで .gitignore を尊重し、再垰怜玢に最適。 sysz sysz は、systemctl を芖芚的に操䜜できるタヌミナルツヌル。 tldr 簡朔なコマンドの䜿い方サマリヌを提䟛するツヌル。初心者でもすぐ理解できる䟋を倚く含む。 zoxide cd の高床な代替。アクセス頻床に基づくゞャンプや、ファゞヌマッチを掻甚しおディレクトリ移動を高速化。
  87. 高床なトピック & モダンLinuxツヌル 99 Copyright © 2025, Oracle and/or its

    affiliates モダンな Linux ツヌルやコマンド 動画でモダンなコマンドを玹介しおいる以䞋サむトも是非 https://github.com/ibraheemdev/modern-unix