解讀Linux文(wén)件權(quán)限的設置方法
Windows係(xì)統其實和Linux係統(tǒng)有(yǒu)相似的地方(fāng),Windows係統文件、目錄的屬性有隻讀、隱(yǐn)藏(cáng),而(ér)Linux也一樣。Linux中,每一個文件都具有特定的屬性。主要包括文件類型和文件權(quán)限兩個方麵。可(kě)以分為5種(zhǒng)不同的類型:普通文件、目錄文件、鏈接文件、設備文件和(hé)管道文件(jiàn)。
所謂(wèi)的文件權限,是指對文件的訪(fǎng)問(wèn)權(quán)限,包括對(duì)文件的讀、寫、刪(shān)除、執行。Linux 是(shì)一個多用(yòng)戶操作係(xì)統,它允(yǔn)許多個用(yòng)戶同時(shí)登錄和工作。因此 Linux 將一個文件或目錄與(yǔ)一個(gè)用戶或(huò)組聯係起來。訪問(wèn)控(kòng)製(zhì)列表(ACL:Access Control List)為計(jì)算(suàn)機提供更好的訪問控製(zhì),它的作用(yòng)是限(xiàn)製(zhì)包括root用戶(hù)在內的所有用戶對(duì)文件、資源(yuán)或者套接字的訪(fǎng)問。下(xià)麵就來教大家簡單的設置方法。
步驟1 檢查係統核(hé)心
首先檢查(chá)你的Linux係統的(de)核心(xīn)是否有支持ACL的功能。因為Linux係(xì)統並不是每一(yī)個(gè)版本的核心都有支持(chí)ACL的功能,而最簡單的方法(fǎ)就是(shì)檢查(chá)係統目前的(de)核心能否支持:
[root@mail /]# cat /boot/config-kernel-version | grep -i ext3
CONFIG_EXT3_FS=m
CONFIG_EXT3_IDEX=y
CONFIG_EXT3_FS_XATTR_SHARING=y
CONFIG_EXT3_FS_XATTR_USER=y
CONFIG_EXT3_FS_XATTR_TRUSTED=y
CONFIG_EXT3_FS_ACL=y
此時如果能(néng)看到(dào)上麵的幾(jǐ)項(xiàng)則表示已經編(biān)譯到核心中,ext3文件係統已支(zhī)持ACL功能(néng),這些功能(néng)在編譯(yì)核心選(xuǎn)項中都可(kě)以(yǐ)找(zhǎo)到。如果編譯(yì)時(shí)找不(bú)到,可(kě)以到ACL的官方網站來安裝Kernel(acl.bestbits.at/)。
步(bù)驟2 掛載分(fèn)區
你可以用下列(liè)的方式(shì)掛載分區並啟(qǐ)用ACL:
#mount -t ext3 -o acl /dev/sda1 /fs1
你也可(kě)以直(zhí)接(jiē)寫在/etc/fstab文(wén)件中,這樣就可(kě)以在開機後支(zhī)持ACL功能:
#vi /etc/fstab
步驟3 設置ACL權限
ACL常常(cháng)針對個別(bié)用(yòng)戶來進行設(shè)置(zhì),下麵是多(duō)個不同(tóng)的(de)例子:
例如需(xū)要創建test1、test2、test3三個用(yòng)戶,可以(yǐ)先(xiān)用(yòng)root身份登錄係統,然後執行以下命令(lìng)分別(bié)創建(jiàn)三(sān)個(gè)用戶名和(hé)密碼:
[root@mail root]#adduser test1
[root@mail root]#adduser test2
[root@mail root]#adduser test3
[root@mail root]#passwd test1
[root@mail root]#passwd test2
[root@mail root]#passwd test3
然後mount一個ext3文件到目錄/fs1:
[root@mail root]#mount -t ext3 -o acl /dev/sda1 /fs1
再將test1 建立的(de)文件(jiàn)設置(zhì)讀寫的權(quán)限給(gěi)test2 :
[root@mail root]#chmod -R 777 /fs1
讓所(suǒ)有的用(yòng)戶都能(néng)增加文件到目錄的權(quán)限:
先(xiān)用test1登錄係統,執行命令:
[test1@mail test1]# cd /fs1
[test1@mail fs1]# echo "Create by test1" > test1.txt
[test1@mail fs1]# chmod go-r test1.txt
[test1@mail fs1]# ll test1.txt
-rw------- 1 test1 test1 17 Jul 14 22:11 test1.txt
而如下操作則可(kě)以讓除了test1有讀(dú)寫(xiě)的權限(xiàn)外(wài)其他人沒有讀寫test1.txt的權(quán)限(root除(chú)外),先用test2 登錄係統後執行(háng)以下命(mìng)令:
[test2@mail test2]# cd /fs1
[test2@mail fs1]# cat test1.txt
cat : test1.txt Permission denied
接著用test1登錄係統,執行(háng)如下命令:
[test1@mail fs1]# setfacl -m u:test2:rw test1.txt
這樣就(jiù)修改權限允許test2 有這個文件的讀寫權限(xiàn)。再看一下(xià)它的文件(jiàn)屬性的變化:
[test1@mail fs1]# ll
-rw-rw-r--+ 1 test1 test1 10 Feb 16 13:52 test1.txt
會看到後麵多(duō)了一個“+”,表示這(zhè)個文(wén)件(jiàn)使用(yòng)ACL的(de)屬性設置,再用命令getfacl來看ACL的文件屬性設置(zhì):
[test1@mail fs1]# getfacl test1.txt
# file: test1.txt
# owner: test1
# group: test1
user::rw-
user:test2:rw-
group::rw-
mask::rw-
other::r--
可以看到 test2 有權限(xiàn)讀寫(xiě)這個文件。
我(wǒ)們(men)再用test2登錄係(xì)統執行以下命令,看(kàn)看(kàn)發生了什麽?
[test2@mail test2]# cd /fs1
[test2@mail fs1]# cat test1.txt
Create by test1
原來test2可以讀取test1.txt文件了(le)。
[test2@mail fs1]# echo "Modify by test2" >> test1.txt
[test2@mail fs1]# cat test1.txt
Create by test1
Modify by test2
現(xiàn)在test2也(yě)可以修改test1.txt文件(jiàn)了。
接著(zhe)用test3 登錄係統:
[test3@mail test3]# cd /fs1
[test3@mail fs1]# cat test1.txt
cat : test1.txt Permission denied
嘿嘿,除(chú)了test1、test2外(wài)沒(méi)有其他用戶有讀寫test1.txt的權限(root 除外(wài))。
關鍵詞:解讀(dú),Linux文件,權限,設置(zhì)方法
閱讀本文後您有什麽感想? 已有 人給(gěi)出評價!
- 1
- 1
- 1
- 1
- 1
- 1