アクセラと+αな生活
アクセラとα350と共に過ごす気まぐれ日記です。
Firefox ブラウザ無料ダウンロード
2017年08月
≪07月  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31    09月≫
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Ubuntu 9.04 に ACL を設定してみる。
Linux にはパーミッションというものがあります。
このパーミッションを適切に管理することで、ファイル、情報の機密性、安全性、可用性を確保できますね。

このパーミッションは「所有者(ユーザ)」、「所有グループ」、「その他ユーザ」の3種類でしか管理できないのが基本です。

例えば、あるファイルを所有者である「A さん」と「B さん」だけで、共有したい場合があります。
この場合、「B さん」を「A さん」と同じグループに所属させ、対象のファイルの「所有グループ」権限で読み取り、書き込み可能の設定を行えば「A さん」と「B さん」で共有できます。
ですが、「A さん」の所属するグループに他のユーザがいると、「A さん」、「B さん」以外のユーザにも共有されてしまうことになります。

このような不便さを解決してくれるのが、ACL(Access Control List)という機能です。
ACL は特定のユーザやグループに対して権限を設定できる、パーミッションの拡張機能と考えれば分かりやすいかもww

Ubuntu 9.04 では標準で ACL が利用できる(一部設定を変更する必要あり)ので、利用してみましょう。


【ACL を利用する設定】

ACL はディスクマウント時に利用するオプションを設定することで、利用可能になります。
(カーネル 2.6以上でしか利用できないという条件もありますが、Ubuntu 9.04 であれば、カーネルは問題ありません。。。)

Ubuntu 9.04 に ACL 自体はインストールされているのですが、ディスクマウント時のACL のオプションが設定されていないので、デフォルトのままでは利用できない状態です。

「ACL」が利用できるかを確認してみましょう。
「ACL」は「mount」コマンドで確認することができます。


○ACL が設定されていない場合
$ mount
/dev/sda2 on / type ext3 (rw,relatime,errors=remount-ro)

○ACL が設定されてる場合
$ mount
/dev/sda2 on / type ext3 (rw,relatime,errors=remount-ro,acl)

「ACL」が利用できる設定の場合は対象のディスクのオプションで「():かっこ」内に「acl」という表示になります。

「acl」が設定されていなければ、「/etc/fstab」で「acl」オプションを指定します。
設定を反映させるには、OS の再起動が必要なので、設定を保存した後、再起動(reboot)させます。
※「/etc/fstab」は、OS 起動時にマウントするディスクの情報が記述された重要なファイルです。

 編集する前には必ずバックアップしておきましょう。
 


「vi」で「/etc/fstab」を編集
$ sudo vi /etc/fstab

「/」(ルート)に対して、以下のように「,acl」を追加する。

UUID=????? / ext3 relatime,errors=remount-ro,acl 0 1

設定を保存した後、反映させるため、OSを再起動する。
# sudo reboot


【ACL でのファイル権限設定】
上記の ACL を利用する設定が完了したら、ACL の権限を設定してみましょう。

「ACL」はユーザだけでなく、グループにも利用できます。
設定方法は
 「setfacl -m u:<対象のユーザ>:<設定する権限> <対象のファイル>」
 「setfacl -m g:<対象のグループ>:<設定する権限> <対象のファイル>」

で行います。
<設定する権限>は、「r」、「w」、「x」で行い、読み取り(r)と書き込み(w)を与える場合は「rw」と裁定します。


○「mylist.txt」というファイルに「user1」の読み取り(r)と書き込み(w)の権限を与える場合
$ ls -l mylist.txt
-rw------- 1 xxxx xxxx 106025 yyyy-mm-dd hh:mm mylist.txt

$ setfacl -m u:user1:rw mylist.txt

$ ls -l mylist.txt
-rw-------+ 1 xxxx xxxx 106025 yyyy-mm-dd hh:mm mylist.txt

「ACL」が設定されるとファイルのパーミッション(-rw-------)の後に「+」が表示されるようになります。
う~ん、「ls」コマンドでは、「ACL」が設定されているか、いないかを確認できますが、設定内容までは確認できませんね。

実際に「ACL」でどのような設定になっているかを確認するには「getfacl」を使用します。


$ getfacl mylist.txt
# file: mylist.txt
# owner: xxxx
# group: xxxx
user::rw-
user:user1:rw-
group::---
mask::rw-
other::---

このように、ユーザ単位(グループ単位)で、どの権限が設定されているかを確認できます。


【ACL でのファイル権限解除】
ユーザ単位で「ACL」の設定を解除するのであれば、
 「$ setfacl -x u:<対象のユーザ> <対象のファイル>」
グループ単位で「ACL」の設定を解除するのであれば、
 「$ setfacl -x g:<対象のグループ> <対象のファイル>」
で行います。

「ACL」の設定を全て(全てのユーザ、全てのグループ)を解除するのであれば、
 「$ setfacl -b <対象のファイル>」
で行います。




「ACL」を利用すれば、ファイル単位でより細かい権限管理ができるようになります。
共有する・しないの権限管理のために、いろいろなユーザやグループを作成して管理することも不要なので、お勧めです。


コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by .
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。