開発運用

ACLとNFSの設定方法

Red Hat Enterprise Linux (RHEL)は、エンタープライズ環境で広く使用されているLinuxディストリビューションの一つです。RHELでは、セキュリティの強化、アクセス制御、そして効率的なファイル共有のためにさまざまな技術が使用されており、その中でも「アクセス制御リスト(ACL)」と「ネットワークファイルシステム(NFS)」が重要な役割を果たします。本記事では、これらの技術をRHEL上で設定し、効果的に使用する方法について詳しく説明します。

1. アクセス制御リスト(ACL)とは

アクセス制御リスト(ACL)は、Linuxシステムにおいてファイルやディレクトリに対する詳細なアクセス権限を設定できる仕組みです。従来のUNIX系のパーミッション(rwx)では、所有者、グループ、その他のユーザーの3つのカテゴリーに対して設定する権限が限られていましたが、ACLを使用することで、より細かく、個々のユーザーやグループに対するアクセス権限を制御できます。

2. RHELにおけるACLの有効化

RHELでACLを使用するには、まずACLの機能が有効になっていることを確認する必要があります。デフォルトでは、RHELではACLが有効化されている場合が多いですが、もし無効になっている場合は、以下の手順で有効化することができます。

2.1 ACLの確認

まず、tune2fsコマンドを使用して、ファイルシステムがACLをサポートしているかどうかを確認します。

bash
sudo tune2fs -l /dev/sda1 | grep "Filesystem features"

出力に「has_journal」や「acl」が含まれていれば、ACLが有効であることを意味します。

2.2 ACLの有効化

もしACLが無効になっている場合は、/etc/fstabファイルを編集して有効にする必要があります。該当するファイルシステムのエントリにaclオプションを追加します。

bash
/dev/sda1 / ext4 defaults,acl 1 1

その後、ファイルシステムを再マウントします。

bash
sudo mount -o remount /dev/sda1

3. ACLの設定

ACLを設定するには、setfaclコマンドを使用します。基本的な使い方を以下に示します。

3.1 単一ユーザーへのアクセス権の設定

特定のユーザーに対して、ファイルまたはディレクトリに対するアクセス権限を設定します。

bash
setfacl -m u:username:rwx /path/to/file

ここで、usernameはアクセス権を設定するユーザー名、rwxは読み取り(r)、書き込み(w)、実行(x)の権限を意味します。

3.2 グループへのアクセス権の設定

特定のグループに対してアクセス権を設定する場合は、以下のようにします。

bash
setfacl -m g:groupname:rwx /path/to/file

3.3 デフォルトACLの設定

新しく作成されるファイルにもACLを適用するために、デフォルトACLを設定することができます。

bash
setfacl -d -m u:username:rwx /path/to/directory

4. NFS(Network File System)の設定

次に、RHEL上でのネットワークファイルシステム(NFS)の設定について説明します。NFSは、ネットワーク越しにファイルシステムを共有するためのプロトコルで、複数のシステム間でファイルを共有する際に非常に便利です。RHELでは、nfs-utilsパッケージを使用してNFSサーバーとクライアントを構成します。

4.1 NFSサーバーのインストール

まず、NFSサーバーをインストールします。nfs-utilsパッケージをインストールするには、以下のコマンドを実行します。

bash
sudo yum install nfs-utils

4.2 NFSサービスの開始と有効化

NFSサーバーを起動し、システム起動時に自動で起動するように設定します。

bash
sudo systemctl start nfs-server sudo systemctl enable nfs-server

4.3 エクスポートの設定

NFSで共有するディレクトリを設定します。/etc/exportsファイルにエクスポートするディレクトリとアクセス権を指定します。例えば、/srv/nfsディレクトリを全てのクライアントに読み書き可能で共有する場合は、以下のように設定します。

bash
/srv/nfs *(rw,sync,no_root_squash)

設定後、NFSサーバーを再起動します。

bash
sudo systemctl restart nfs-server

4.4 NFSクライアントの設定

NFSクライアント側では、nfs-utilsパッケージをインストールして、NFSサーバーから共有されたディレクトリをマウントします。

bash
sudo yum install nfs-utils

次に、NFSサーバーから共有されたディレクトリをマウントします。例えば、サーバーのIPアドレスが192.168.1.100で、/srv/nfsディレクトリをマウントする場合、以下のコマンドを実行します。

bash
sudo mount 192.168.1.100:/srv/nfs /mnt/nfs

4.5 NFSの自動マウント設定

システム起動時に自動でNFSをマウントするためには、/etc/fstabに以下のようにエントリを追加します。

bash
192.168.1.100:/srv/nfs /mnt/nfs nfs defaults 0 0

5. ACLとNFSの併用

RHELでACLとNFSを併用することで、ネットワーク越しにファイルシステムを共有する際にも細かいアクセス制御を行うことができます。NFSサーバーでACLを有効にするためには、NFSv4を使用することが推奨されます。/etc/exportsファイルで、NFSv4を使用する設定を行い、NFSクライアントでACLを適用することができます。

例えば、/etc/exportsでNFSv4を有効にするには、以下のように設定します。

bash
/srv/nfs *(rw,sync,no_root_squash,fsid=0)

この設定により、ACLを適用したファイルシステムの共有が可能になります。

6. 結論

Red Hat Enterprise Linuxでは、ACLとNFSを使用することで、セキュアで効率的なファイルアクセス管理とファイル共有が実現できます。ACLを活用することで、細かいアクセス権限設定が可能となり、NFSを利用することで、ネットワーク越しにファイルシステムを共有することができます。これらの技術を適切に設定し運用することで、企業や組織におけるセキュアなファイル管理を実現できるでしょう。

Back to top button