Linux基礎知識の記事一覧

デーモン(Deamon)とは

デーモン(Deamon)とは、サーバー機能などを複数のユーザーに提供し続けるプログラムのことです。また、デーモンが提供し続ける機能のことをサービスと言います。

デーモンは基本的にLinuxの起動時に実行され、そのままユーザーにサービスを提供し続けます。

Linuxのサーバー機能のほとんどがそのサービスという形で用意されています。それはつまり、Linuxで新しい機能を追加したいと思ったら希望に合ったサービスを提供するデーモンを追加すれば良いわけです。

以下に主なサービスの一覧を記載します。

主なサービス一覧

Linux上で提供されるサービスは数多くあります。例えば、Apache HTTP Server、BIND、vsftpd、Postfixはすべてデーモンであり、それぞれ、Webサーバー、DNSサーバー、FTPサーバー、メールサーバーとしてのサービス(機能)を提供しています。

サービス 機能概要
acpid、apmd ACPIやAPMのイベントに対応して動作するためのサービス
anacron、atd、crond 定時作業を実行するためのサービス
ip6tables、iptables ファイアウォールを設定するサービス
messagebus システムの変化をユーザーに通知するためのサービス
network 起動時にネットワークの設定(固定IPの設定)をするためのサービス
smartd ハードディスクの異常を検知するサービス
syslog システムログをファイルに保存するサービス
yum-updatesd 自動アップデートを行うためのサービス
cups プリントアウトのためのサービス
sshd 別のコンピュータから安全にログインするためのサービス
netfs 起動時にマウントするように設定されたネットワークファイルシステムをマウントする
restorecond、mcstrans SELinux関連のサービス
ntpd 時刻合わせを行うサービス

他にもユーザーが作成したもの、企業が自社向けに開発したものなど、世の中には非常に多くのデーモンが存在し、様々なサービスが提供されています。

2016年03月01日(火)|Linux基礎知識

グループの作成・削除・変更

Linuxでのグループ作成・削除および変更方法について見ていきます。

グループの作成

Linuxにグループを作成するには、groupaddコマンドを使用します。

# groupadd testgroup

上記では「testgroup」という名前のグループを作成しています。

groupaddコマンド
groupadd [オプション] グループ名

グループコマンドのオプション
-g <GID>:GIDを指定してグループを作成
-o:GIDの重複を許可

グループの確認

groupaddコマンドで作成したグループが正しく登録されたかどうかを確認しましょう。グループの確認はgroupsコマンドを使用します。

# groups testgroup
groups: testgroup: No such user

groupsコマンドで引数でしていしたグループに属するユーザーが表示されます。上記例ではtestgroupにはまだ誰も属していないことを示しています。

グループの削除

グループを削除するには、groupdelコマンドを使用します。
削除対象のグループをイニシャルグループ(プライマリグループ)とするユーザーがいる場合は、そのグループを削除する事はできません。

# groupdel testgroup
groupdelコマンド
groupdel [オプション] グループ名

groupdelコマンドのオプション
なし

グループの変更

groupmodコマンドでグループ情報を変更する事ができます。変更できる情報は、グループ名とGIDです。

# groupmod -n newgroup testgroup
groupmodコマンド
groupmod [ -g <GID> [ -o ] ]
[ -n <新しいグループ名> ]
<変更対象のグループ名>

groupmodコマンドのオプション
-g:グループのGIDを変更する
-n:グループ名を変更する
-o:GIDの重複を許可する

なお、既存のファイル、ディレクトリのグループも同時に変更されます。
例えば、以下ファイルがあったとします。

# ls -l
-rwxr-xr--. 1 ftpuser testgroup    0 Feb 21 01:57 testfile

この状態でtestgroupのグループ名を変更した後にもう一度グループを確認すると以下のようになります。

# ls -l
-rwxr-xr--. 1 ftpuser newgroup    0 Feb 21 01:57 testfile

上記のようにグループ名も変更されています。
ただし、GIDについてはグループのGIDを変更しても、既存のファイル、ディレクトリのグループは変更されません。

2016年02月28日(日)|Linux基礎知識

ユーザーの作成・削除・変更

Linuxでのユーザー作成・削除および変更方法について見ていきます。

ユーザーの作成

Linuxでユーザーを新規に作成するにはuseraddコマンドを使用します。

ユーザーの作成はrootユーザーで行いますので、まずはLinuxにrootユーザーでログインします。

useraddコマンドで新規ユーザーを作成します。

# useradd -p 123qwe testuser

上記では「testuser」という名前のユーザーを作成しています。また、パスワードには「123qwe」という文字列を設定しています。

useraddコマンド
useradd [オプション] ユーザー名

useraddコマンドのオプション
-g <追加するユーザーの所属グループ>
-p <追加するユーザーの暗号化されたパスワード>

ユーザーの確認

useraddコマンドで作成したユーザーが正しく登録されたかどうかを確認しましょう。ユーザーの確認はidコマンドを使用します。

# id testuser
uid=503(testuser) gid=504(testuser) groups=504(testuser)

idコマンドは指定したユーザーIDやグループIDを表示します。
上記例では左から順にユーザーID(uid)、グループID(gid)、所属グループが表示されています。

なお、引数に何も指定しないと現在のユーザーの情報が表示されます。

ユーザーの削除

ユーザーを削除するには、userdelコマンドを使用します。

# userdel -r testuser

-rオプションを指定した場合、ユーザーを削除するとともにホームディレクトリ配下のファイルを含むホームディレクトリ自体を削除します。ユーザーが作成したファイルを残したい場合は、-rオプションを使用しないで実行します。

userdelコマンド
userdel [-r] ユーザー名

userdelコマンドのオプション
-r:そのユーザーのホームディレクトリを削除する

ユーザーの変更

ユーザー情報を変更するには、usermodコマンドを使用します。

ユーザーのホームディレクトリ、グループ、期限などを変更できます。

# usermod -g testgroup testuser

上記例では「testuser」ユーザーの属するグループを「testgroup」グループに変更しています。

rootで直接ログインさせない

Linuxにリモートからログインするにはsshコマンドなどを使用しますが、その際、直接rootユーザーでログインさせないようにしておくことが原則です。

もし、直接rootユーザーでのログインを許可してしまうと複数いるうちの誰がrootユーザーで作業しているのかわからなくなってしまうからです。

ですので、いったん上記のようにして作成した一般ユーザーでログインしてから、必要に応じてsuコマンドでrootユーザーにスイッチさせるようにします。

2016年02月27日(土)|Linux基礎知識

ユーザとグループ

Linuxは複数の利用者が1つのシステムを共同利用することが前提のシステムです。
そのため1台のコンピュータで複数のユーザーが同時に利用できるようになっています。(そのようなOSをマルチユーザーOSと言います。)

ユーザー認証

Linuxはあらかじめ登録された利用者しか使うことができないようになっています。その利用者のことを「ユーザー」と言います。また、Linuxの利用開始時にユーザーの身元や妥当性を識別する操作を「ログイン」と言います。
ログインはユーザーがLinuxを利用するために必要となる最初の操作であり、表示されたログイン画面にユーザー名とパスワードを入力し、それらが事前に登録されたものと一致した場合のみLinuxで作業を開始できるようになっています。

また、Linuxはユーザーを区別し、そのユーザーに許可されていること、許可されていないことなどユーザー単位で作業できる範囲を限定(パーミッションの管理)します。さらにログインしているユーザーを特定し、作業内容を記録したりします。

ユーザーの種類

Linuxにおけるユーザーは以下のような種類で分けることができます。

種類 説明
システム管理者 システムを管理する管理者用のユーザー。「root」というユーザー名で固定。
一般ユーザー システムを利用する利用者用のユーザー。任意で作成可能。
システムアカウント Web、DNS、メールサーバーといった各種サービスを運用するために使用するユーザー。

システム管理者用のrootユーザーはスーパーユーザーとも呼ばれ、強力な権限を持っており、そのコンピュータに対するほとんど全ての操作を行うことができます。システムファイルなども削除できてしまうので、基本的にrootユーザーは管理作業以外では使用しないことが推奨されます。

Linuxではユーザーの作成を利用者で任意で行えますが、その作成したユーザーは「一般ユーザー」となります。
コンピュータにアクセスするすべての利用者に対して、それぞれ唯一のユーザーを作成するのが理想です。そうすることでシステム管理者は誰が何を行なったのかがわかりますし、、他の人のファイルや設定を壊してしまうようなことを防ぐことができます。

上記2つのユーザーは人間が使用するものですが、3つ目のシステムアカウントは違います。
システムアカウントは特定のアプリケーション用に存在するユーザーです。アプリケーションとは例えば、Apache(Webサーバー)やBIND(DNSサーバー)などのことです。

仮にそれらのサービスがすべてrootユーザーで実行されていたとします。その場合、それらのサービスはコンピュータ上でどんな動作も可能になってしまいます。もし悪意のあるアプリケーションにそのような権限を持たせてしまって場合、やりたい放題されてしまいます。
セキュリティを意識する必要がある対象は利用者のみでなくアプリケーションも含める必要があるということです。

グループ

Linuxの利用はユーザー単位が基本ですが、ファイルやディレクトリが増えてきた場合など、それらに対するパーミッション設定を全てのユーザーに行っていては大変です。

そこで複数のユーザーをまとめて管理することができるようになっています。その仕組みが「グループ」です。

ファイルやディレクトリのパーミッション設定をグループに対して行ってやれば、そのグループに属している全てのユーザーに適用されることになります。

ユーザーは複数のグループに属することもできます。

個人専用でLinuxを使用する場合はユーザーやグループについてさほど意識する必要はありませんが、企業や学校などで共同利用する場合には、それらの管理は非常に重要な仕事です。

2016年02月24日(水)|Linux基礎知識

パーミッションの設定

Linux上のすべてのファイルとディレクトリには所有者、所属するグループおよびパーミッションという情報が付与されています。

パーミッションとは、あるユーザーがそのファイルまたはディレクトリにアクセスしたときにどのような操作が許可されているかを指定したものです。

ファイルやディレクトリを作成すると、作成したユーザーがその所有者として設定されます。
同時に所有者のプライマリグループがファイルやディレクトリのグループになります。

例えば、ftpgroupというグループに属するユーザーftpuserがファイルを作成すると、
そのファイルの所有者はftpuserに所属グループはftpgroupになります。

ファイルやディレクトリの所有者、所属するグループおよびパーミッションを確認したときはlsコマンドの-lオプションを付与して実行すれば、確認できます。

パーミッション(アクセス権)

ファイルやディレクトリには、パーミッションが設定されています。
パーミッションとはアクセス権とも言われ、どのユーザーに対してどのような操作を許可するのかという情報を指します。

パーミッションは、

  • 所有者
  • 所有グループに属するユーザー
  • その他のユーザー

の3種類に対して設定できます。

また、パーミッションには、

  • 読み取り可能
  • 書き込み可能
  • 実行可能

の3種類があります。

ファイルのパーミッション

例えば、「testfile」というファイルを「ls -l」コマンドで確認したとき、実行結果の左側にある「-rwwrw-r–」の部分がそのファイルに付与されたパーミッションを示しています。

「rwx」の文字が出力されている場合は許可されている、「-」の場合は許可されていないことを表しています。また、「rwx」の並びが3組ありますが、左からそれぞれ、ファイル所有者のアクセス権、所属グループのアクセス権、その他のユーザーのアクセス権を示しています。

$ ls -l
-rwxrw-r--. 1 ftpuser ftpgroup    0 Feb 21 01:57 testfile

上記から「testfile」ファイルに付与されているパーミッションを以下のように読み取ることができます。

ユーザーがftpuser(所有者)の場合
読み込み(r)、書き込み(w)、実行(x)が可能

ユーザーがftpgroupに属する場合
読み込み(r)、書き込み(w)が可能

ユーザーが上記以外の場合
読み込み(r)ば可能

ディレクトリのパーミッション

ディレクトリの場合は「rwx」の前にディレクトリであることを示す「d」という文字がつきます。

$ ls -l
drwxr-xr-x. 2 ftpuser ftpgroup 4096 Feb 21 22:08 testdir

上記から「testdir」ディレクトリに付与されているパーミッションを以下のように読み取ることができます。

ユーザーがftpuser(所有者)の場合
内部の参照(r)、操作(w)、内部のファイルとディレクトリにアクセス(x)が可能

ユーザーがftpgroupに属する場合
内部の参照(r)、内部のファイルとディレクトリにアクセス(x)が可能

ユーザーが上記以外の場合
内部の参照(r)、内部のファイルとディレクトリにアクセス(x)が可能

まとめ

上述のようにファイルとディレクトリでパーミッションが示す意味が異なります。まとめると以下のようになります。

表記 ファイル ディレクトリ
r そのファイルの内容を読み出すことが可能。変更は不可。 そのディレクトリ内のファイル一覧を表示することが可能。
w そのファイルの内容を変更したり、削除したりすることが可能。 そのディレクトリでファイルを作成したり、削除したりすることが可能。
x そのファイルを実行することが可能。 そのディレクトリ内のファイルにアクセスすることが可能。

2016年02月22日(月)|Linux基礎知識

Linuxのディレクトリ構造

LinuxのディレクトリはWindowsのフォルダに相当するものです。関連するファイルをひとつのフォルダにまとめて格納するのと同じように、ディレクトリを使用します。

ディレクトリの中には、ディレクトリ(サブディレクトリ)とファイルが入ります。
例えば、ディレクトリAの中にディレクトリBがあった場合、AはBの親ディレクトリとなり、BをAのサブディレクトリとなります。そして、全ての親ディレクトリをたどっていくと頂点にたどりつきます。そのディレクトリをルートディレクトリと言います。

Linuxでは、すべてのディレクトリとファイルがルートディレクトリ配下に置かれることになります。

ディレクトリ構成

Linuxでは、Windowsと同じようにユーザーが任意の名前をつけてディレクトリを作成することもできますが、Linuxをインストールすると自動的に生成されるディレクトリがあり、それらディレクトリに置かれるファイルはある程度決まっています。

例えば、CentOSをインストールすることでルートディレクトリ配下に以下のディレクトリが生成されます。

ディレクトリ名 説明
bin Binary(バイナリ)、つまり実行形式のファイルが格納される
boot ブート(システム起動)に関するファイルが格納される
dev デバイスファイルが格納される
etc 管理用のファイルが格納される
home ユーザーのホームディレクトリが格納される
lib ライブラリファイルが格納される
lost+found 何らかの原因で迷子になったファイルが格納される
media リムーバブルメディアのマウントポイントとして使用する
misc 種々雑多のファイルを格納する
mnt 各種ドライブのマウントポイントとして使用する
net 不使用
opt オプションのアプリケーションファイルを格納する
proc システム用のファイルが格納される
root root(スーパーユーザー)が使用するファイルを格納する
sbin システム関係のバイナリファイルが格納される
selinux SELinux用のファイルが格納される
sys デバイスドライバ情報などが格納される
tmp 一時的に使用するファイルを格納する
usr ユーザーが共有するファイルを格納する
var 変数やログファイルなどが格納される

ディレクトリ階層

Linuxのファイルシステムは階層型ディレクトリとなっています。階層型ディレクトリとはディレクトリの中に子ディレクトリを作成して、その中にさらにファイルやディレクトリを作ることができる階層構造のことです。

前述のとおり、ディレクトリ名はある程度決まっています。ただ、同じ名称のディレクトリが異なる階層に置かれるものがあります。例えば、バイナリファイル(実行形式のファイル)を格納するbinやsbinディレクトリがありますが、それらはいくつかの階層に置かれています。

ディレクトリ構造

Linuxで実行するコマンドも実体はC言語等で作られたプログラムです。例えば、ファイルやディレクトリの情報を表示するlsコマンドやネットワーク環境の状態確認/設定を行うifconfigコマンドが実行された際に呼び出されるのは、binやsbinディレクトリの中にあるバイナリファイルです。基本的な考え方としてルートディレクトリに近い位置にある(階層が浅い)程、重要であったり使用頻度が高いものが置かれています。

2016年02月21日(日)|Linux基礎知識

CentOSとは

CentOSとは「Community ENTerprise Operating System」(コミュニティベースで開発された、エンタープライズ用途のOS)の略称です。商用のエンタープライズ用途であるRed Hat社のRed Hat Enterprise Linux(RHEL)をベースに作られており、RHELクローンと表現されることもあります。

Red Hat社はRHELに含まれているソフトウェアをオープンソースライセンスに基づき、そのソースコードを無償公開しています。CentOSは、そのソースコードをもとに、商標や商用パッケージを含まない形で再構成されたものです。

RHELと完全互換を目指しており、主要なターゲットはRHELと同様、企業のサーバーや業務用デスクトップ環境の構築となっています。
RHELは商用Linuxの代表的な位置づけにあり、安定性、信頼性は非常に優れており、実績も十分にあります。CentOSの最大のメリットはそのようなものと互換でありながら無償で利用できることです。

無償であるにもかかわらず、サポート期限が非常に長く、商用向けOSに匹敵するほどの安定性を持っていることから、一部メーカーのLinux搭載パソコンやワークステーションでは標準OSとしてCentOSを採用しています。

ただし、有償のRHELで受けられるユーザーサポートや商用パッケージは利用できません。

FedoraとRHELとCentOSの関係

Red Hat社はFedora Projectというコミュニティーを支援しています。
半年ごとにリリースされるFedoraで新機能を試しつつ、そのノウハウをRHELに反映しています。

Red Hat社はさらにCentOS Projectというコミュニティーも支援しています。

RHELに随時反映している機能のうち、無償で提供できる機能をCentOSに反映しています。

CentOSとRHELの関係

FedoraとRHELのバージョン番号に直接的な関係はありませんが、CentOSとRHELは関係があります。例えば、CentOS6.4はRHEL6.4のクローンという対応関係になります。

CentOSはRHELのサポートが受けられないと前述しましたが、何もまったくサポートがないというわけではありません。コミュニティーベースでサポートされており、セキュリティパッチが提供される「メンテナンス更新」、新機能の追加とセキュリティパッチが提供される「完全更新」など、かなりの頻度で提供されています。

2016年02月11日(木)|Linux基礎知識

LinuxとUNIXの違い

前ページではLinuxはUNIX互換のOSと説明しました。

では、LinuxとUNIXの違いは何でしょうか。

簡潔に述べれば、UNIXと言うOSを参考にして、1から開発されたのがLinuxです。

あくまで参考にしたまでであり、UNIXを開発したAT&T社のソースコードは使用されていません。つまり、UNIXをベースにして作られたOSは数多くありますが、それらと異なるのは、1から作り直されたと言う点です。

ただし、UNIXを参考にしているので、似たようなユーザーインターフェースとなっています。例えば、コマンドの違いを見ていくと、システム管理やカーネルに近い部分のコマンドは違いに気が付きやすいものの、一般ユーザーレベルのコマンドはほとんど同じです。
そのため、OSの細部まで踏み込む必要があるような用途で使用しないかぎり、その違いに気がつくことはあまりないのかもしれません。

ということで、LinuxはほぼUNIXと言ってしまっても差し支えないでしょう。

UNIXとは

UNIXについても簡単に触れておきます。

UNIXは1969年に米国AT&T社のベル研究所で開発されました。マルチユーザー、マルチタスクのOSであり、Windowsの前身であるMS-DOSのお手本にもなったOSです。

UNIXの商標は現在、The Open Groupが持っており、SUS(Single UNIX Specification)の認証を得た物が公式にUNIXと名乗れることになっています。

現在、多く使われているUNIXとしてはMac OS X、AIX、HP-UX、Solarisなどがあります。(認証を受けていないもののひとつがLinuxです。)

2016年02月10日(水)|Linux基礎知識

Linuxとは

Linux(リナックス)は、UNIX互換のOSです。

OSは「Operating System」(オペレーティングシステム)の略称であり、「基本ソフト」とも呼ばれます。その名称のとおり、ハードウェアを操作したり管理したり、コンピュータの基本的な機能を担うソフトウェアです。

例えば、ワープロや表計算などのさまざまなアプリケーションはOSから提供される機能を使って動きます。見方を変えると「ハードウェアの上でOSが動き、さらにその上でアプリケーションが動く」と考えることができます。

Linuxは、そのOSの中核(カーネル)部分です。たくさんのシステムで使用されているLinuxですが、それだけでは何もできないのと同じです。さまざまなコマンド、ツールやアプリケーションなどが揃って初めてコンピュータを活用できるようになります。

しかし、それらを揃えて、構築するのはかなりの知識が必要であり、非常に大変です。さらにそれに365日24時間の連続稼動に耐えられるといった安定動作を求めるとなると、個人はおろか一般的な企業であっても、現実的に不可能です。

そこで、カーネル単体ではなく、それらツール、アプリケーション、ドキュメントやインストーラなど、コンピュータとして動作させるために必要な機能をひとまとめにした「Linuxディストリビューション」という形で流通されています。

Linuxディストリビューションとは

Linuxディストリビューションとは、Linuxを一般利用者が導入(インストール)したり、利用できる形にまとめ上げたもののことです。上記したカーネルと各種ツールやアプリケーションなどがパッケージ化されています。

また、それらを作成・配布している個人や団体をディストリビュータと言います。

Linux(カーネル)自体は無償(GPL準拠)ですが、独自のパッケージ化で有償配布されるものや、ディストリビューション自体は無料ですが、保守サービスを有料にしたものなど、多様なディストリビューションが公開されています。

ただし、有償なものでも一般に安価です。

代表的なディストリビューションとして以下のようなものがあります。

ディストリビューション 説明
Red Hat Enterprise Linux(RHEL) サポートが充実している企業向けの商用Linuxディストリビューション。
CeontOS RHELのクローン。RHELと同様、企業のサーバーや業務用デスクトップ環境をターゲットとしている。Red Had社のサポートが不要な企業向け。
Fedora Core Fedora Projectが提供しているLinuxディストリビューション。Red Hat社がかつて提供していた「Red Hat Linux」(RHL)の後継。
Debian GNU/Linux Debian ProjectのLinuxディストリビューション。
Ubuntu Linux 英Canonical社が提供しているDebian GNU/Linuxと互換性のあるフリーのLinuxディストリビューション。
Turbolinux ターボリナックス社が提供している純国産のLinuxディストリビューション

上表はほんの一部に過ぎず、Linuxディストリビューションは他にもたくさんあります。ゲーム配信サービスSteamの運営元が開発したゲーミングPC用OSであるSteamOSやCDブートで利用できるようにしているKNOPPIXなど、ある分野に特化しているものや特徴的なものも多くあります。

最も使われているディストリビューションは?

では、そのたくさんあるLinuxディストリビューションのうちどれが最も使われいるのでしょうか。

直近5年の状況ですが、Red Hat/CentOS系のシェアが減りUbuntuが伸びているのが特徴でしょうか。

ただ、社会インフラシステムや金融システムなど、ダウンが許されない大規模システムではRHELが採用されることが多いように感じています。

2016年02月06日(土)|Linux基礎知識

サイト内検索

カテゴリー

  • Apache2.2構築
  • BIND DNSサーバー構築
  • Linux基礎知識
  • NTPサーバー構築
  • vsftpd FTPサーバー構築

サイト情報

  • 当サイトについて
  • 免責
  • お問い合わせフォーム
  1. CentOSサーバー構築入門
  2. Linux基礎知識の記事一覧

CentOSサーバー構築入門

CentOSによるサーバー構築方法をわかりやすく解説しています。
  • 特定商取引法に基づく表示
  • 運営者情報
  • お問い合わせ
  • サイトマップ
  • twitter
  • facebook
  • Google +1
  • RSS
Copyright ©2025 CentOSサーバー構築入門 All Rights Reserved.

[↑]このページの先頭へ