在安全管理日益重要的今天,傳統(tǒng)的 Unix 文件系統(tǒng)的 UGO 權(quán)限管理方式已經(jīng)無法滿足日常系統(tǒng)管理工作的需要。而 ACL 機(jī)制逐漸成為主流的權(quán)限管理方式。本文主要介紹了在基于 Linux2.6 內(nèi)核的發(fā)行版 Fedora Core 上進(jìn)行的一些 ACL 基本功能的實(shí)驗(yàn)。
ACL 簡介
用戶權(quán)限管理始終是 Unix 系統(tǒng)管理中最重要的環(huán)節(jié)。大家對 Linux/Unix 的 UGO 權(quán)限管理方式一定不陌生,還有最常用的 chmod 命令。為了實(shí)現(xiàn)一些比較復(fù)雜的權(quán)限管理,往往不得不創(chuàng)建很多的組,并加以詳細(xì)的記錄和區(qū)分(很多時(shí)候就是管理員的噩夢)。可以針對某一個(gè)用戶對某一文件指定一個(gè)權(quán)限,恐怕管理員都期待的功能。比如對某一個(gè)特定的文件,用戶A可以讀取,用戶B所在的組可以修改,惟獨(dú)用戶B不可以……。于是就有了IEEE POSIX 1003.1e這個(gè)ACL的標(biāo)準(zhǔn)。所謂ACL,就是Access Control List,一個(gè)文件/目錄的訪問控制列表,可以針對任意指定的用戶/組分配RWX權(quán)限。現(xiàn)在主流的商業(yè)Unix系統(tǒng)都支持ACL。FreeBSD也提供了對ACL的支持。Linux在這個(gè)方面也不會落后,從2.6版內(nèi)核開始支持ACL。
準(zhǔn)備工作
支持ACL需要內(nèi)核和文件系統(tǒng)的支持。現(xiàn)在2.6內(nèi)核配合EXT2/EXT3, JFS, XFS, ReiserFS等文件系統(tǒng)都是可以支持ACL的。用自己工作用的物理分區(qū)體驗(yàn)ACL,總是不明智的行為。萬一誤操作導(dǎo)致分區(qū)的損壞,造成數(shù)據(jù)的丟失,損失就大了。作一個(gè)loop設(shè)備是個(gè)安全的替代方法。這樣不需要一個(gè)單獨(dú)的分區(qū),也不需要很大的硬盤空間,大約有個(gè)幾百KB就足夠進(jìn)行我們的體驗(yàn)了。OK,下面我使用Fedora Core 5和Ext3文件開始對Linux的ACL的體驗(yàn)。
首先創(chuàng)建一個(gè)512KB的空白文件:
[root@FC3-vm opt]# dd if=/dev/zero of=/opt/testptn count=512
512+0 records in
512+0 records out
|
和一個(gè)loop設(shè)備聯(lián)系在一起:
[root@FC3-vm opt]# losetup /dev/loop0 /opt/testptn
|
創(chuàng)建一個(gè)EXT2的文件系統(tǒng):
[root@FC3-vm opt]# mke2fs /dev/loop0
mke2fs 1.35 (28-Feb-2004)
max_blocks 262144, rsv_groups = 32, rsv_gdb = 0
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
32 inodes, 256 blocks
12 blocks (4.69%) reserved for the super user
First data block=1
1 block group
8192 blocks per group, 8192 fragments per group
32 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
|
掛載新建的文件系統(tǒng)(注意mount選項(xiàng)里的acl標(biāo)志,我們靠它來通知內(nèi)核我們需要在這個(gè)文件系統(tǒng)中使用ACL):
[root@FC3-vm opt]# mount -o rw,acl /dev/loop0 /mnt
[root@FC3-vm opt]# cd /mnt
[root@FC3-vm mnt]# ls
lost+found
|
現(xiàn)在我已經(jīng)得到了一個(gè)小型的文件系統(tǒng)。而且是支持ACL的。并且即使徹底損壞也不會影響硬盤上其他有價(jià)值的數(shù)據(jù)。可以開始我們的ACL體驗(yàn)之旅了。