国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

Linux中限制用戶訪問權限的3種方法

2020-07-10 11:43:45
字體:
來源:轉載
供稿:網友

現在需要限定某個用戶對特定目錄/文件的訪問權限,或者把某個用戶的訪問范圍限制在某個目錄/文件中。現實情況下,還是能遇到這樣的需求的,比如說ubuntu下有多個可登錄用戶,默認情況下,用戶A的工作目錄(一般為/home/A)對任何其他用戶來說都是可讀的,但是用戶A可能不希望其他用戶(或者某個特定用戶)讀取A的文件。

這里提出三個解決方案。

第一種:使用chmod更改特定目錄的權限。這能起到限制特定目錄被某些人訪問的作用,限定某個用戶的目的也能達到,但是會誤傷其他用戶。
第二種:使用linux容器,例如lxc。耗費空間,設置稍顯麻煩。
第三種:使用setfacl命令設定訪問控制。

其中,第三個方案是最符合要求的。本文主要講該方案的具體實現并在我自己的本上測試。我的系統為Linux Mint 15 64位,根目錄/使用的是ext4文件系統,/home使用的btrfs文件系統。

安裝acl

復制代碼
代碼如下:
sudo apt-get install acl

有資料說是要重啟系統,但是測試的時候我發現這個在以前就已經安裝好了(不知道是Mint自帶了還是我胡亂裝的),沒有重啟依舊有效。


使用setfacl

以root的身份執行下面的命令:

復制代碼
代碼如下:
# mkdir /home/test
# 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目錄下創建目錄test,在test目錄下創建文件foo.txt,并在foo.txt下隨便加了些內容。然后以普通用戶letian的身份訪問foo.txt,可以讀foo.txt。

現在以root身份運行setfacl,使得/home/test目錄及其里面的文件和目錄不能被letian訪問。

復制代碼
代碼如下:
# setfacl -R -m u:letian:- /home/test/

-R表示遞歸,-m表示修改,u:letian:-表示用戶(user)letian對/home/test沒有任何權限。可以根據需要添加r、w、x及其組合。 我們查看一下test目錄的詳細信息:

復制代碼
代碼如下:
# ls -ld /home/test/
drwxr-xr-x+ 1 root root 14 Jan 16 09:46 /home/test/

文件權限后面出現了一個+號,這說明該文件或者目錄設置了ACL。foo.txt的權限信息后面也會有+號。 然后,以letian的身份訪問該目錄:

復制代碼
代碼如下:

$ ls /home/test
ls: cannot open directory /home/test: Permission denied


使用getfacl

getfacl用來查看對某個目錄/文件設置的acl。

復制代碼
代碼如下:
$ getfacl /home/test
# file: /home/test
# owner: root
# group: root
user::rwx
user:letian:---
group::r-x
mask::r-x
other::r-x

刪除設置的acl

復制代碼
代碼如下:

# setfacl -b /home/test/
# getfacl /home/test
# file: /home/test
# owner: root
# group: root
user::rwx
group::r-x
other::r-x

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石家庄市| 蒙阴县| 黎川县| 沙田区| 任丘市| 吉隆县| 龙州县| 防城港市| 临洮县| 台前县| 舒城县| 崇左市| 柞水县| 蓝田县| 白城市| 偏关县| 巴林左旗| 沂水县| 城固县| 梁平县| 延安市| 长寿区| 亳州市| 巩留县| 岳阳市| 新郑市| 英超| 五大连池市| 南溪县| 安吉县| 呈贡县| 桦川县| 怀化市| 丹巴县| 双流县| 武平县| 洪湖市| 信丰县| 灵璧县| 姜堰市| 庆云县|