hana_shinのLinux技術ブログ読者になるhana_shinのLinux技術ブログLinuxの技術情報を掲載しています。ネットワークをメインに掲載していきます。ACL(アクセス制御リスト)とは?Linuxのファイルやディレクトリに対するアクセス制御方式には、以下の方式があります。任意アクセス制御方式では、ファイルやディレクトリの所有者自身が、それらに対するアクセス権を設定します。SELinux,AppArmor,Smack本記事では、ACLで使うgetfacl,setfaclコマンドの使い方を説明します。ACLは、パーミッションによるアクセス方式に比べ、粒度の細かいアクセス制御ができます。検証環境CentOS版数は以下のとおりです。(Core)カーネル版数は以下のとおりです。インストール方法aclパッケージをインストールします。aclgetfaclコマンドの版数を確認します。2.2.51setfaclコマンドの版数を確認します。事前準備テスト用ユーザ(usere1)を作成します。hana_shinのLinux技術ブログを参照してください。user1テスト用ユーザ(user2)を作成します。user2テスト用ファイルを作成します。/tmp/test.txttest.txtのACLを確認します。ACLはまだ設定されていないことがわかります。rootuser::rw-group::r--other::r--テスト用ファイルの所有者、グループを確認します。ともにrootであることがわかります。設定方法(-m)test.txtに対してuser1のみ、リード/ライトができるようにACLを設定します。/tmp/test.txttest.txtに対してuser2のみ、リードができるようにACLを設定します。/tmp/test.txttest.txtのACLを確認します。test.txtに対して、各ユーザは次のことができることがわかります。rootuser::rw-user:user1:rw-user:user2:r--group::r--mask::rw-other::r--なお、ACLを設定すると、パーミッションの右端に+が表示されることがわかります。削除方法(-x)test.txtからuser1のACLを削除します。/tmp/test.txttest.txtのACLを確認します。test.txtからuser1のACLが削除されたことがわかります。rootuser::rw-user:user2:r--group::r--mask::r--other::r--test.txtからuser2のACLを削除します。/tmp/test.txttest.txtのACLを確認します。test.txtからuser2のACLが削除されたことがわかります。グループのACL設定、削除方法グループに対して、ACLの設定、削除をおこなってみます。事前準備テスト用のファイルを作成します。/tmp/test.txtテスト用のグループ(staff)を作成します。staff作成したグループを確認します。設定方法(-m)test.txtに対して、staffグループはリード/ライトできるようにACLを設定してみます。/tmp/test.txtACLを確認します。staffグループは、test.txtに対してリード/ライトができることがわかります。/tmp/test.txtACLを確認します。ACLを一括削除する方法(-b)test.txtに設定されているACLを確認します。user1,user2のACLが設定されていることがわかります。rootuser::rw-user:user1:rw-user:user2:r--group::r--mask::rw-other::r--ACLを一括削除します。/tmp/test.txttest.txtのACLを確認します。user1,user2のACLが削除されたことがわかります。再帰的に表示する方法(-R)ファイルやディレクトリのACLを再帰的に表示してみます。テスト用に使うディレクトリを作成します。dir1/dir2dir1,dir2のACLを確認します。dir1,dir2のACLが表示されていることがわかります。ファイルを使ってACLを設定する方法(-M)ACLを定義したファイルを作成します。acl.txtuser:user1:rwuser:user2:rwxfile.txtのACLを確認します。ACLは、まだ設定されていないことがわかります。rootuser::rw-group::r--other::r--test.txtにACLを設定します。/tmp/test.txtfile.txtに設定されているACLを確認します。user1とuser2のACLが設定されたことがわかります。デフォルトACLを設定、削除する方法dir1に対し、user1がリード/ライトができるようにデフォルトACLを設定します。dir1/dir1に設定したデフォルトACLを確認します。デフォルトACLが設定されたことがわかります。rootuser::rwxgroup::r-xother::r-xdefault:user::rwxdefault:user:user1:rw-default:group::r-xdefault:mask::rwxdefault:other::r-xディレクトリ(dir1)に設定されたデフォルトACLを削除します。dir1dir1に設定したデフォルトACLを確認します。実験test.txtに対して、user1はリード/ライト、user2はリードができるようにACLを設定してみます。/tmp/test.txtuser1のfile.txtに対するリード/ライトを確認します。file.txtに対して、リード/ライトができることがわかります。pts/1テスト用ファイルに書き込みをします。user1はファイルへの書き込みが許可されているので、エラーは発生しません。/tmp/test.txtテスト用ファイルから読み込みをします。user1はファイルからの読み込みが許可されているので、エラーは発生しません。/tmp/test.txt12345user1からrootに切り替えます。exitlogout次に、user2に切り替えます。user2テスト用ファイルに書き込みをします。user2はファイルへの書き込みが禁止されているので、書き込みができません。deniedテスト用ファイルから読み込みをします。user2はファイルからの読み込みが許可されているので、ファイルの中身を読み込むことができます。私が業務や記事執筆で参考にした書籍を以下のページに記載します。)はてなブログをはじめよう!hana_shinさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。