Linux中限制用戶(hù)訪(fǎng)問(wèn)權(quán)限的3種方法
現(xiàn)在需要限定某個(gè)用戶(hù)對(duì)特定目錄/文件的訪(fǎng)問(wèn)權(quán)限,或者把某個(gè)用戶(hù)的訪(fǎng)問(wèn)范圍限制在某個(gè)目錄/文件中?,F(xiàn)實(shí)情況下,還是能遇到這樣的需求的,比如說(shuō)ubuntu下有多個(gè)可登錄用戶(hù),默認(rèn)情況下,用戶(hù)A的工作目錄(一般為/home/A)對(duì)任何其他用戶(hù)來(lái)說(shuō)都是可讀的,但是用戶(hù)A可能不希望其他用戶(hù)(或者某個(gè)特定用戶(hù))讀取A的文件。
這里提出三個(gè)解決方案。
第一種:使用chmod更改特定目錄的權(quán)限。這能起到限制特定目錄被某些人訪(fǎng)問(wèn)的作用,限定某個(gè)用戶(hù)的目的也能達(dá)到,但是會(huì)誤傷其他用戶(hù)。
第二種:使用linux容器,例如lxc。耗費(fèi)空間,設(shè)置稍顯麻煩。
第三種:使用setfacl命令設(shè)定訪(fǎng)問(wèn)控制。
其中,第三個(gè)方案是最符合要求的。本文主要講該方案的具體實(shí)現(xiàn)并在我自己的本上測(cè)試。我的系統(tǒng)為L(zhǎng)inux Mint 15 64位,根目錄/使用的是ext4文件系統(tǒng),/home使用的btrfs文件系統(tǒng)。
安裝acl
有資料說(shuō)是要重啟系統(tǒng),但是測(cè)試的時(shí)候我發(fā)現(xiàn)這個(gè)在以前就已經(jīng)安裝好了(不知道是Mint自帶了還是我胡亂裝的),沒(méi)有重啟依舊有效。
使用setfacl
以root的身份執(zhí)行下面的命令:
# touch /home/test/foo.txt
# vim /home/test/foo.txt
# ls -ld /home/test/
drwxr-xr-x 1 root root 14 Jan 16 09:46 /home/test/
# ls -ld /home/test/foo.txt
-rw-r--r-- 1 root root 6 Jan 16 09:46 /home/test/foo.txt
上面的命令在/home目錄下創(chuàng)建目錄test,在test目錄下創(chuàng)建文件foo.txt,并在foo.txt下隨便加了些內(nèi)容。然后以普通用戶(hù)letian的身份訪(fǎng)問(wèn)foo.txt,可以讀foo.txt。
現(xiàn)在以root身份運(yùn)行setfacl,使得/home/test目錄及其里面的文件和目錄不能被letian訪(fǎng)問(wèn)。
-R表示遞歸,-m表示修改,u:letian:-表示用戶(hù)(user)letian對(duì)/home/test沒(méi)有任何權(quán)限??梢愿鶕?jù)需要添加r、w、x及其組合。 我們查看一下test目錄的詳細(xì)信息:
drwxr-xr-x+ 1 root root 14 Jan 16 09:46 /home/test/
文件權(quán)限后面出現(xiàn)了一個(gè)+號(hào),這說(shuō)明該文件或者目錄設(shè)置了ACL。foo.txt的權(quán)限信息后面也會(huì)有+號(hào)。 然后,以letian的身份訪(fǎng)問(wèn)該目錄:
$ ls /home/test
ls: cannot open directory /home/test: Permission denied
使用getfacl
getfacl用來(lái)查看對(duì)某個(gè)目錄/文件設(shè)置的acl。
# file: /home/test
# owner: root
# group: root
user::rwx
user:letian:---
group::r-x
mask::r-x
other::r-x
刪除設(shè)置的acl
# setfacl -b /home/test/
# getfacl /home/test
# file: /home/test
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。