kei615ykhm’s programming learning blog

プログラミングを0から学んでいる学生の備忘録

【学びの記録】Linuxのディレクトリ構成 -ファイルの所有権とパーミッションを深く理解するための前提知識

Linuxディレクトリとファイルの所有権とパーミッションを覚えようと学習を進めてみるもの、概念は理解できるが目的を理解できずに学習が難航

 

原因は、「悪意ある他ユーザーやソフトウェアがアクセスしてきたときに備えて防衛策を取る」という視点が足りていなかったからだった

どのファイルを守るべきか、共同開発のときにチームメンバーがアクセスできるようにするべきものはなにかを知る必要があったようだ

 

そこで、Linuxディレクトリとファイルの役割を理解することから始めてみようと思い、この記事を投稿することにした

 

 

Linuxディレクトリの構成図

Linuxディレクトリ構成は非常に体系的であり、それぞれのディレクトリが特定の役割を持っている。

 

ルートディレクトリ「/」

全てのディレクトリとファイルのトップレベ

 

「bin(バイナリ)」

基本的なユーザーコマンドバイナリ(user command binary)が含まれている

主にUnixオペレーティングシステムLinuxMacOS)において、ユーザーが直接実行できるプログラムの実行ファイルを指す

 

例:Is、cp、mv、rmなど

 

「boot」

ブートローダーやカーネルイメージのファイルが含まれている

コンピューターが起動する際に最初に読みこまれるソフトウェアを一部で、オペレーティングシステムをメモリにロードし、実行を開始するための役割を果たす

これらのファイルは、システムの起動プロセスに関する重要なもの

 

「dev(デバイス)」

バイスファイルが含まれている

Unix系OSで使用される特殊なファイルの一種で、システムのハードウェアデバイスや仮想デバイスへのアクセスを提供する

 

例:sdal,tty,null

 

「etc(エトセトラ)」

システムの設定ファイルが含まれている

OSやソフトウェアの動作や設定を管理するためのファイルで、システム全体の設定や特定のアプリケーションの設定を記述していて、通常は管理者権限が必要な場所に保管されている

 

「home」

各ユーザーのホームディレクトリが含まれている

各ユーザーの個人ファイルや設定ファイルを保存するための専用ディレクトリで、通常このディレクトリは/home以下に作成される(システム管理者が異なる場所に指定も可能)

 

「lib(ライブラリ)」

基本的なシステムライブラリが含まれている

システムが動作するために必要な共有ライブラリ(共有オブジェクト、ダイナミックリングライブラリ)やカーネルモジュールを格納する場所で、システム全体やアプリケーションの実行時に使用される重要なファイル

 

「lib64」

64ビットライブラリが含まれている

64ビットアプリケーションが正しく動作するために必要なファイル

 

「media」

リムーバブルメディアのマウントポイントとして使用される

外付けハードディスク、CD、DVDなどのマウントポイント

 

「mnt(マウント)」

一時的なマウントポイントとして使用される

リムーバブルメディアやネットワークファイルシステム、その他のファイルシステムを一時的にマウントするために利用される

 

「opt(オプション)」

サードパーティソフトウェアの追加インストール場所

ここにはオプションのソフトウェアパッケージがインストールされる場合が多い

 

「proc(プロセス)」

カーネルとプロセス情報の仮想ファイルシステム

カーネルとランニングプロセスに関する情報が提供される

*ランニングプロセスとは、コンピューターのOS上で現在実行中のプログラムのことを指す。

 

「root」

rootユーザーのホームディレクト

システム管理者(rootユーザー)の個人ファイルが保存される

 

「run」

アプリケーションのランタイムデータが含まれる

プログラムが実行されている間に生成、使用、または管理されるデータのこと

アプリケーションの動作やパフォーマンスに直接的な影響を与えるため、適切に管理することが重要

 

「sbin(システムバイナリ)」

システム管理用のコマンドが含まれている

これらのコマンドはシステム管理者のみが使用する

 

srv(サービス)」

サーバーによってホストされるデータが含まれる

Webサービスやデータベースなどのサービス関連のデータが保存される

 

「sys(システム)」

システム情報の仮想ファイルシステム

システムハードウェアとデバイスに関する情報が提供される

 

「tmp(テンポラリ)」

一時ファイルが格納されるディレクト

システム再起動後にクリアされることが多い

 

「usr(ユーザー)」

ユーザーがインストールするソフトウェアやライブラリが格納される

システム全体で共有されるソフトウェアやデータが含まれる

*パッケージマネージャーも含まれる

 

「var(バリアブル)」

可変データファイルが含まれる

システムログ、スプールファイルなど、頻繁に変更されるデータが含まれる

 

まとめ

Linuxディレクトリはそれぞれに役割があり、重要なデータを扱う部分もあるため、内容を把握して正しく取り扱う必要がある。

 

次回の記事で所有権とパーミッションの観点で重要なファイルの説明を行う。