RHCSAシリーズ:ACL(アクセス制御リスト)の使用とSamba / NFS共有のマウント-パート7


前回の記事(RHCSAシリーズパート6)では、partedとssmを使用してローカルシステムストレージをセットアップおよび構成する方法の説明を開始しました。

また、システムの起動時にパスワードを使用して暗号化されたボリュームを作成およびマウントする方法についても説明しました。さらに、マウントされたファイルシステムで重要なストレージ管理操作を実行しないように警告しました。そのことを念頭に置いて、Red Hat Enterprise Linux 7で最も使用されているファイルシステム形式を確認してから、手動と自動の両方のネットワークファイルシステム(CIFSとNFS)のマウント、使用、およびアンマウントのトピックと、実装について説明します。システムのアクセス制御リストの一覧。

先に進む前に、SambaサーバーとNFSサーバーが使用可能であることを確認してください(NFSv2はRHEL 7ではサポートされなくなったことに注意してください)。

このガイドでは、両方のサービスがサーバーとして実行されているIP 192.168.0.10のマシンと、IPアドレス192.168.0.18のクライアントとしてRHEL7ボックスを使用します。この記事の後半で、クライアントにインストールする必要のあるパッケージについて説明します。

RHEL7のファイルシステムフォーマット

RHEL 7以降、XFSは、その高いパフォーマンスとスケーラビリティにより、すべてのアーキテクチャのデフォルトのファイルシステムとして導入されました。現在、Red Hatとそのパートナーが主流のハードウェアに対して実行した最新のテストに従って、最大ファイルシステムサイズ500TBをサポートしています。

また、XFSは、ext3またはext4(ext2はRHEL 7で非推奨と見なされます)とは異なり、デフォルトのマウントオプションとして user_xattr (拡張ユーザー属性)および acl (POSIXアクセス制御リスト)を有効にします。 )、つまり、XFSファイルシステムをマウントするときにコマンドラインまたは/ etc/fstabでこれらのオプションを明示的に指定する必要はありません(この最後の場合にそのようなオプションを無効にする場合は、<を明示的に使用する必要がありますb> no_acl および no_user_xattr )。

拡張ユーザー属性は、ファイルのmimeタイプ、文字セット、エンコードなどの任意の追加情報を格納するためにファイルやディレクトリに割り当てることができますが、ユーザー属性のアクセス許可は通常のファイル許可ビットによって定義されることに注意してください。

初心者でもエキスパートでも、すべてのシステム管理者は、所有者、グループ、および「世界」(その他すべて)に特定の特権(読み取り、書き込み、および実行)を指定するファイルおよびディレクトリへの通常のアクセス許可に精通しています。 。ただし、メモリを少し更新する必要がある場合は、RHCSAシリーズのパート3を参照してください。

ただし、標準のugo/rwxセットでは、ユーザーごとに異なるアクセス許可を構成できないため、通常のアクセス許可で指定されているものよりも詳細なファイルとディレクトリのアクセス権を定義するためにACLが導入されました。

実際、ACLで定義されたアクセス許可は、ファイルのアクセス許可ビットで指定されたアクセス許可のスーパーセットです。これらすべての翻訳が現実の世界でどのように適用されるかを見てみましょう。

1. ACLには、特定のファイルまたはディレクトリのいずれかに適用できるアクセスACLと、ディレクトリにのみ適用できるデフォルトのACLの2種類があります。そこに含まれるファイルにACLが設定されていない場合、それらは親ディレクトリのデフォルトACLを継承します。

2.まず、ACLは、ユーザーごと、グループごと、またはファイルの所有グループに属していないユーザーごとに構成できます。

3. ACLは、それぞれ-mまたは-xオプションを指定してsetfaclを使用して設定(および削除)されます。

たとえば、tecmintという名前のグループを作成し、それにユーザーjohndoeとdavenullを追加しましょう。

# groupadd tecmint
# useradd johndoe
# useradd davenull
# usermod -a -G tecmint johndoe
# usermod -a -G tecmint davenull

そして、両方のユーザーが補足グループtecmintに属していることを確認しましょう。

# id johndoe
# id davenull

/ mnt内にplaygroundというディレクトリを作成し、その中にtestfile.txtという名前のファイルを作成しましょう。グループ所有者をtecmintに設定し、デフォルトのugo/rwxアクセス許可を770に変更します(ファイルの所有者とグループ所有者の両方に付与された読み取り、書き込み、および実行のアクセス許可)。

# mkdir /mnt/playground
# touch /mnt/playground/testfile.txt
# chmod 770 /mnt/playground/testfile.txt

次に、ユーザーをjohndoeとdavenullの順に切り替えて、ファイルに書き込みます。

echo "My name is John Doe" > /mnt/playground/testfile.txt
echo "My name is Dave Null" >> /mnt/playground/testfile.txt

ここまでは順調ですね。次に、ユーザーgacanepaにファイルへの書き込みをさせましょう。そうすると、書き込み操作は失敗します。これは予想どおりでした。

しかし、/ mnt/playground/testfile.txtへの書き込み権限を持つユーザーgacanepa(グループtecmintのメンバーではない)が実際に必要な場合はどうなりますか?最初に頭に浮かぶのは、そのユーザーアカウントをグループtecmintに追加することです。ただし、グループに書き込みビットが設定されている場合は、すべてのファイルに対する書き込み権限が付与されます。これは望ましくありません。彼が/mnt/playground/testfile.txtに書き込めるようにしたいだけです。

# touch /mnt/playground/testfile.txt
# chown :tecmint /mnt/playground/testfile.txt
# chmod 777 /mnt/playground/testfile.txt
# su johndoe
$ echo "My name is John Doe" > /mnt/playground/testfile.txt
$ su davenull
$ echo "My name is Dave Null" >> /mnt/playground/testfile.txt
$ su gacanepa
$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

ユーザーgacanepaに/mnt/playground/testfile.txtへの読み取りおよび書き込みアクセスを許可しましょう。

rootとして実行し、

# setfacl -R -m u:gacanepa:rwx /mnt/playground

これで、gacanepaがテストファイルに書き込むことができるACLが正常に追加されました。次に、ユーザーgacanepaに切り替えて、ファイルへの書き込みを再試行します。

$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

特定のファイルまたはディレクトリのACLを表示するには、getfaclを使用します。

# getfacl /mnt/playground/testfile.txt

デフォルトのACLをディレクトリに設定するには(他の方法で上書きされない限り、その内容は継承されます)、ルールの前にd:を追加し、ファイル名の代わりにディレクトリを指定します。

# setfacl -m d:o:r /mnt/playground

上記のACLにより、所有者グループに属していないユーザーは、/ mnt/playgroundディレクトリの将来のコンテンツへの読み取りアクセス権を持つことができます。変更前後のgetfacl/mnt/playgroundの出力の違いに注意してください。

公式のRHEL7ストレージ管理ガイドの第20章には、より多くのACLが記載されています。例として、それを見て、参考として手元に置いておくことを強くお勧めします。

全著作権所有。 © Linux-Console.net • 2019-2022