😽

Day 14: Linuxの基本を学ぶ - Linuxの基礎

2024/11/16に公開

はじめに

今回は、Linuxの基本的な操作や概念に焦点を当て、特にファイル完治パーミッション(権限)設定について解説します。これらは、実際にLinuxを操作しながら学ぶことで、より理解を深めることができます。

もし普段使いのOSがLinuxでない場合は、VirtualBoxDockerなどの仮想化ツールを活用して、Linuxの実習環境を準備するのがおすすめです。仮想環境なら、実機を使わなくても手軽にLinuxを試すことができます。

まだ環境を用意していない場合は、「こんな仕組みか」とイメージをつかむだけでも十分だと思います。


Linuxとは?

Linuxは、コンピュータを動かすための基本ソフトウェアである**OS(オペレーティングシステム)**の一種です。1991年、リーナス・トーバルズ(Linus Torvalds)氏によって開発され、オープンソースとして公開されました。もともとはサーバー向けに設計されましたが、現在ではデスクトップPC、スマートフォン、組み込み機器など、多岐にわたる用途で利用されています。

特徴

  • 高品質で自由にカスタマイズ可能なソフトウェアが豊富。
  • ハッカーやセキュリティ専門家に広く愛用されている。
  • セキュリティテストやペネトレーションテスト向けに特化したディストリビューション(OSの中核となるソフトウェアに、色々なソフトウェアを組み合わせて使いやすくしたもの。OSのパッケージ)も存在する。

Linuxの基本構造

Linuxファイルシステムの階層構造

Linuxのファイルシステム(コンピュータがファイルを管理する仕組み)は、ツリー構造(階層型ディレクトリ構造)になっています。すべてのファイルやディレクトリは、「/」(ルートディレクトリ)を基点に配置されています。

  • /home:各ユーザーのホームディレクトリが配置されています。たとえば、ユーザー「kano」のホームディレクトリは/home/kanoです。
  • /etc:システム設定ファイルが格納されています。
  • /var:ログファイルや一時データが保存されます。
  • /bin:基本的なコマンド(例:lscatなど)が配置されています。
  • /tmp:一時的なファイルを保存する場所です。

この構造はOSによって異なることがあります。使用するOSの構造を理解することで、ファイルや設定がどこにあるのかを効率的に把握できるようになります。


基本的なLinuxコマンド

Linuxを操作する際、シェルと呼ばれるコマンドラインインターフェース(CLI)が主に使用されます。以下は基本的なコマンドの一部です。

ディレクトリ操作

  • pwd:print name of working directoryの略です。現在の作業ディレクトリを表示します。
    • 例:pwd
  • ls:listの略です。ディレクトリ内のファイルやフォルダを一覧表示します。
    • 例:ls -l(詳細情報を表示)、ls -a(隠しファイルを表示)
  • cd:change directoryの略です。ディレクトリを移動します。
    • 例:cd /home/kano

ファイル操作

  • cat:concatenateの略です。ファイルの内容を表示します。
    • 例:cat file.txt
  • touch:空のファイルを作成します。
    • 例:touch newfile.txt
  • mkdir:make directoryの略です。新しいディレクトリを作成します。
    • 例:mkdir new_folder
  • rm:removeの略です。ファイルやディレクトリを削除します。
    • 例:rm file.txt(ファイル削除)、rm -r folder(ディレクトリ削除)

ファイルとディレクトリの権限(パーミッション)

Linuxでは、ファイルやディレクトリに対して「誰が」「どのように操作できるか」を設定するための仕組みをパーミッションといいます。これにより、アクセスや操作を制御することで、システムの安全性を確保できます。


パーミッションの種類

ファイルやディレクトリには以下の3つの権限があります:

  1. 読み取り(r, read)

    • ファイルの内容を閲覧したり、ディレクトリ内のファイル一覧を確認できます。
  2. 書き込み(w, write)

    • ファイルの内容を変更したり、ディレクトリ内にファイルを追加・削除できます。
  3. 実行(x, execute)

    • ファイルを実行(プログラムやスクリプトとして)したり、ディレクトリにアクセスして中身を操作できます。

権限の確認方法

ls -lコマンドを使うと、ファイルやディレクトリの権限を確認できます。

例:

-rwxr-x---  1 admin staff 67890 kano 05 12:00 script.sh

権限を表している部分は、先頭の文字列 -rwxr-x--- です。この文字列は、ファイルに設定された権限を次のように示しています:

  • オーナー(rwx

    • ファイルの作成者や所有者を指し、rwxで「読み取り、書き込み、実行」が可能であることを表しています。
  • グループ(r-x

    • 所属グループのメンバーを指し、r-xで「読み取りと実行のみ」が可能であることを表しています。
  • その他(---

    • オーナーやグループに属さない全ユーザーを指し、---で「一切の操作が不可」であることを意味します。

この例での説明

この場合、ファイル script.sh の詳細は次の通りです:

  • オーナー: admin
    オーナーは読み取り、書き込み、実行すべて可能(rwx)。

  • グループ: staff
    グループのメンバーは読み取りと実行のみ可能(r-x)。

  • その他のユーザー:
    オーナーやグループに属さない全てのユーザーはアクセスできません(---)。

このように、Linuxではパーミッションを活用することで、セキュリティを高めながら柔軟にアクセス制御を行うことができます。


コマンドの使用例

簡単な操作でできるコマンドの実際の使用例として、例えば以下のような順序で操作・確認・変更などを行います。

簡単なファイル操作

  1. 新しいディレクトリを作成
    mkdir my_folder
    
  2. ディレクトリに移動
    cd my_folder
    
  3. 空のファイルを作成
    touch sample.txt
    
  4. ファイルの内容を確認
    cat sample.txt
    

権限の確認と変更

  1. 権限を確認
    ls -l sample.txt
    
  2. 書き込み権限を追加
    chmod +w sample.txt
    

小テスト

Q1: Linuxのファイルシステムのルートディレクトリは何ですか?
a) /home
b) /root
c) /
d) /etc

Q2: lsコマンドのオプション-aは何を表示しますか?
a) ディレクトリサイズ
b) 隠しファイル
c) 権限情報
d) 作成日時

Q3: 新しい空のファイルを作成するコマンドはどれですか?
a) rm
b) touch
c) cat
d) mkdir

Q4: ファイルの権限を確認するためのコマンドはどれですか?
a) ls -l
b) cd
c) chmod
d) pwd

Q5: 書き込み権限を追加するコマンドはどれですか?
a) chmod +r
b) chmod +w
c) chmod -x
d) chmod +x


解答

  1. Q1: c) /
  2. Q2: b) 隠しファイル
  3. Q3: b) touch
  4. Q4: a) ls -l
  5. Q5: b) chmod +w

まとめ

Linuxは、シンプルでありながら非常に強力なシステムです。基本的なファイルシステムの構造やコマンドを理解したり、使えるコマンドやコマンドを組み合わせたりすることで、より効率的に操作ができるようになります。

Discussion