歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 巧用Linux2.6內核新功能配置文件ACL

巧用Linux2.6內核新功能配置文件ACL

日期:2017/2/27 14:28:29   编辑:更多Linux

  如果使用過Unix,就不會對ACL(Access Control List,訪問控制列表)感到陌生。在Linux 2.4內核中。ACL作為補丁存在,而在2.6新內核中,它已經是標准內核的一部分了。    傳統Unix的ACL,只能對文件設定用戶、組和其他人的權限,也就是我們常用的755、644之類的權限。如果想為一個文件交叉定義若干個不同組的用戶訪問權限,比如說tom、mary、tony、tod分別屬於不同的組,某一文件想讓mary和tony只讀,tom和tod可寫,其他用戶不可訪問。這種要求用傳統的Unix ACL是無法實現的。    Linux 2.6內核中的ACL正是為應付類似的需求所設計的。它可以方便地為文件配置任意用戶和組的訪問權限。    要想使用ACL功能,首先需要正確編譯2.6內核,並確保有下列選項:  CONFIG_EXT2_FS_POSIX_ACL=y  CONFIG_EXT3_FS_POSIX_ACL=y  CONFIG_FS_POSIX_ACL=y    用新內核啟動後,還要求在掛載分區的時候添加必要的參數“acl”。    mount -t ext3 -o rw,acl /dev/hda8 /your_mount_point    或在 /etc/fstab 中加入下列行,實現自動mount分區並且帶有“acl”參數。    /dev/hda8 ext3 /your_mount_point defaults,acl 1 1    正確掛載文件系統後,就可以使用ACL的命令來修改文件的ACL屬性了。修改ACL屬性的命令有setfacl、getfacl 和chacl,其中chacl是一個SGI IRIX兼容命令,主要適用於那些對SGI IRIX以及XFS文件系統比較熟悉的用戶。本文只介紹setfacl和getfacl命令,具體用法如下面的例子:    1.使文件1.txt可以被用戶test讀寫    setfacl -m u:test:rw 1.txt    2.使文件1.txt可以被qmail組的組員讀,但不能寫    setfacl -m g:qmail:r 1.txt    3.把某一文件的ACL屬性copy給另一文件    比如把文件1.txt的ACL屬性copy給2.txt:    getfacl 1.txt setfacl -set-file=- 2.txt    4.同時為文件設置不同用戶或組的權限    比如對文件2.txt設定testmail用戶可讀寫,qmail組組員可讀可執行,nofiles 組組員可執行:    setfacl -m u:testmail:rw,g:qmail:rx,g:nofiles:x 2.txt    查看man page可獲得setfact和getfacl命令更詳細的用法。    在系統管理員的工作中,遇到的最大的困難往往不是高難度的內核問題,也不是配置Apache服務器之類的問題,而是控制文件訪問權限的問題。主管領導常常會提出非常特別的要求,權限配置經常具體到人,這在配置文件服務器Samba時非常難於實現,使用2.6內核中的ACL(訪問控制列表)新功能,問題就會迎刃而解。




Copyright © Linux教程網 All Rights Reserved