linux 中如何实现仅对指定的用户开放特定目录的读写执行的权限

 

001、背景

 

两个测试用户分别是:

user01

user02

 

目标:实现user01家目录下一共 有两个目录dir1和dir2; 实现user01家目录下的dir1对用户user02单独开放读写执行的权限。

 

002、测试未开放前user01下的dir1和dir2对用户user02是否有权限

 

[user01@pc1 ~]$ ls
[user01@pc1 ~]$ whoami        ## user01
user01
[user01@pc1 ~]$ pwd           ## user01家目录
/home/user01
[user01@pc1 ~]$ mkdir dir1 dir2     ## 创建两个测试目录
[user01@pc1 ~]$ ls
dir1  dir2

 

[user02@pc1 ~]$ ls
[user02@pc1 ~]$ whoami                   ## 用户user02
user02
[user02@pc1 ~]$ cd /home/user01/dir1     ## 测试user01家目录下dir1对user02的权限
-bash: cd: /home/user01/dir1: Permission denied
[user02@pc1 ~]$ cd /home/user01/dir2     ## 测试user01家目录下dir2对user02的权限
-bash: cd: /home/user01/dir2: Permission denied

 

003、用户user01修改user01家目录下dir1对usr02的权限

(注:一共要设置两次,1是user01家目录对user02的读和执行的权限; 2是usr01家目录下dir1对user02的权限)

a、首先是指usr01家目录对user02的读和执行的权限

[user01@pc1 ~]$ ls
dir1  dir2
[user01@pc1 ~]$ whoami
user01
[user01@pc1 ~]$ echo $HOME
/home/user01
[user01@pc1 ~]$ setfacl -m u:user02:r-x /home/user01     ## 设置user01的家目录对user02的读和执行的权限

 

b、设置usr01家目录下的dir1对用户user02的读写执行权限

[user01@pc1 ~]$ ls
dir1  dir2
[user01@pc1 ~]$ whoami              ## 用户user01
user01
[user01@pc1 ~]$ echo $HOME
/home/user01
[user01@pc1 ~]$ setfacl -m u:user02:rwx /home/user01/dir1/    ## user01家目录下的dir1设置对user02的读写执行权限

 

004、测试user01开放权限后,user02是否有权限

[user02@pc1 ~]$ ls
[user02@pc1 ~]$ whoami
user02
[user02@pc1 ~]$ cd /home/user01/dir1/              ## user02对user01家目录下的拥有访问权限,同时具有写入权限
[user02@pc1 dir1]$ echo "hollo world" > a.txt      ## 写入文件
[user02@pc1 dir1]$ ls
a.txt
[user02@pc1 dir1]$ cd /home/user01/dir2/           ##  usr01家目录下的dir2对user02也开放了读和执行的权限,但是无写的权限
[user02@pc1 dir2]$ echo "hollo world" > b.txt      ## 无法写入文件
-bash: b.txt: Permission denied

 

005、关闭user01家目录dir2对user02的读和执行的权限并进行测试

a、关闭user01家目录下dir2对user02的读和执行的权限

[user01@pc1 ~]$ ls
dir1  dir2
[user01@pc1 ~]$ whoami
user01
[user01@pc1 ~]$ echo $HOME
/home/user01
[user01@pc1 ~]$ setfacl -m u:user02:--- /home/user01/dir2/     ## 关闭权限,即设置为---

 

b、测试user01家目录下的dir2对user02的权限

[user02@pc1 dir2]$ whoami
user02
[user02@pc1 dir2]$ cd /home/user01/dir2/    ## user02此时对user01家目录下的dir2读和执行的权限,说明设置成功
-bash: cd: /home/user01/dir2/: Permission denied

 。

 

posted @ 2023-12-29 23:31  小鲨鱼2018  阅读(425)  评论(0编辑  收藏  举报