(k8s-king-king)Linux系统中文件及目录权限设定

举报
yd_254431385 发表于 2023/11/24 13:34:42 2023/11/24
【摘要】 3.1 案例目标(1)掌握chmod和chown命令,修改文件和目录的权限及属性;(2)掌握特殊权限的使用方法;(3)掌握ACL权限的使用方法。3.2 案例分析(1)规划节点服务器的节点规划,见表3-1。(线上实训平台会自动分配IP地址)表3-1 IP地址信息设备IP地址单节点服务器172.16.59.99/24(2)基础准备最小化CentOS 7.5虚拟机一台,CentOS 7.5系统IS...

3.1 案例目标

(1)掌握chmod和chown命令,修改文件和目录的权限及属性;

(2)掌握特殊权限的使用方法;

(3)掌握ACL权限的使用方法。

3.2 案例分析

(1)规划节点

服务器的节点规划,见表3-1。(线上实训平台会自动分配IP地址)

表3-1 IP地址信息

设备 IP地址
单节点服务器 172.16.59.99/24

(2)基础准备

最小化CentOS 7.5虚拟机一台,CentOS 7.5系统ISO镜像。

3.3 案例实施

(1) 将file1和file2文件的权限设置为所属组用户增加写入权限(file1和file2原有权限为-rw-r–r--)。


[root@localhost ~]# touch  file1 file2
[root@localhost ~]# ll
total 4
-rw------- 1 root root 3302 Jun  1  2018 anaconda-ks.cfg
-rw-r--r-- 1 root root    0 Jan 12 08:30 file1
-rw-r--r-- 1 root root    0 Jan 12 08:30 file2
[root@localhost ~]# chmod  g+w file[1-2]
[root@localhost ~]# ll
total 4
-rw------- 1 root root 3302 Jun  1  2018 anaconda-ks.cfg
-rw-rw-r-- 1 root root    0 Jan 12 08:30 file1
-rw-rw-r-- 1 root root    0 Jan 12 08:30 file2

(2)创建directory1目录,在此目录下创建file3,将directory1目录中所有文件设为任何用户均可写。


[root@localhost ~]# mkdir  directory1
[root@localhost ~]# touch  directory1/file3
[root@localhost ~]# ll directory1/
total 0
-rw-r--r-- 1 root root 0 Jan 12 08:33 file3
[root@localhost ~]# chmod  -R a+w directory1/*
[root@localhost ~]# ll directory1/
total 0
-rw-rw-rw- 1 root root 0 Jan 12 08:33 file3

(3)将file1文件的权限修改为只有所有者拥有读写执行权限,所属组用户和其他人用户只有读权限:


[root@localhost ~]# chmod 744 file1
[root@localhost ~]# ll
total 4
-rw------- 1 root root 3302 Jun  1  2018 anaconda-ks.cfg
drwxr-xr-x 2 root root   27 Jan 12 08:33 directory1
-rwxr--r-- 1 root root    0 Jan 12 08:30 file1
-rw-rw-r-- 1 root root    0 Jan 12 08:30 file2

(4)分别创建用户和组zys,user1,将file1文件的用户属性更改成用户为zys,用户组为user1。


[root@localhost ~]# useradd zys
[root@localhost ~]# groupadd user1
[root@localhost ~]# chown zys:user1 file1
[root@localhost ~]# ll 
total 4
-rw------- 1 root root  3302 Jun  1  2018 anaconda-ks.cfg
drwxr-xr-x 2 root root    27 Jan 12 08:33 directory1
-rwxr--r-- 1 zys  user1    0 Jan 12 08:30 file1
-rw-rw-r-- 1 root root     0 Jan 12 08:30 file2

(5)在directory1目录中创建run.sh,并更改所有者强制位,使所有用户均可以root用户的身份来运行该文件。


[root@localhost ~]# touch  directory1/run.sh
[root@localhost ~]# ll directory1/
total 0
-rw-rw-rw- 1 root root 0 Jan 12 08:33 file3
-rw-r--r-- 1 root root 0 Jan 12 08:35 run.sh
[root@localhost ~]# chmod  u+s file1
[root@localhost ~]# ll
total 4
-rw------- 1 root root  3302 Jun  1  2018 anaconda-ks.cfg
drwxr-xr-x 2 root root    45 Jan 12 08:35 directory1
-rwsr--r-- 1 zys  user1    0 Jan 12 08:30 file1
-rw-rw-r-- 1 root root     0 Jan 12 08:30 file2

(6)在/mnt目录下创建test子目录,该目录下所有用户均可以写入文件,但不允许用户删除除自己以外其他人的文件,这里需要创建2个用户分别是jack和mary,其中jack在/mnt/test目录中创建了file1文件,mary在/mnt/test目录中创建了file2文件,2个用户均不允许删除对方的文件,操作如所示:


[root@localhost ~]# mkdir -p /mnt/test
[root@localhost ~]# ls -ld /mnt/test
drwxr-xr-x 2 root root 10 Jan 12 08:36 /mnt/test
[root@localhost ~]# chmod 777 /mnt/test
[root@localhost ~]# ls -ld /mnt/test
drwxrwxrwx 2 root root 10 Jan 12 08:36 /mnt/test
[root@localhost ~]# chmod o+t /mnt/test
[root@localhost ~]# ls -ld /mnt/test
drwxrwxrwt 2 root root 10 Jan 12 08:36 /mnt/test
[root@localhost ~]# useradd jack
[root@localhost ~]# useradd mary
[root@localhost ~]# echo "123" | passwd --stdin jack  //更改用户jack的密码。其中passwd意思所有的身份验证令牌已经成功更新。
[root@localhost ~]# echo "456" | passwd --stdin mary  //更改用户mary的密码。
[root@localhost ~]# su - jack
[jack@localhost ~]$ touch /mnt/test/file1
[jack@localhost ~]$ su - mary
密码:
[mary@localhost ~]$ touch /mnt/test/file2
[mary@localhost ~]$ ls -l /mnt/test
total 0
-rw-rw-r-- 1 jack jack 0 Jan 12 08:40 file1
-rw-rw-r-- 1 mary mary 0 Jan 12 08:40 file2
[mary@localhost ~]$ ls -ld /mnt/test
drwxrwxrwt 2 root root 44 Jan 12 08:40 /mnt/test
[mary@localhost ~]$ rm -rf /mnt/test/file1
rm: cannot remove '/mnt/test/file1': Operation not permitted
//rm: 无法删除"/mnt/test/file1": 不允许的操作
[mary@localhost ~]$ exit 
logout
[jack@localhost ~]$ exit 
logout

(7)在/mnt/test目录中,创建file3.log文件,并追加设置改文件安全值为i,即不允许该文件被删除。


[root@localhost ~]# touch /mnt/test/file3.log
[root@localhost ~]# chattr +i  /mnt/test/file3.log
[root@localhost ~]# rm -rf /mnt/test/file3.log 
rm: cannot remove '/mnt/test/file3.log': Operation not permitted

(8)继续添加用户jones,并添加用户组user1,并将jack、mary和jones三个用户添加成为该用户组的组成员。在/mnt/test目录中创建file4文件(所有者为jack,所属组为user1),修改文件权限为rw-r–r--,通过设置ACL,将允许mary对该文件也拥有读写权限:


[root@localhost ~]# useradd jones
[root@localhost ~]# echo "789" | passwd --stdin jones
Changing password for user jones.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# usermod -G user1 jones
[root@localhost ~]# touch  /mnt/test/file4
[root@localhost ~]# chown jack:user1 /mnt/test/file4
[root@localhost ~]# su - jack
Last login: Wed Jan 12 08:40:11 CST 2022 on pts/0
[jack@localhost ~]$ getfacl --omit-header /mnt/test/file4
getfacl: Removing leading '/' from absolute path names
user::rw-
group::r--
other::r--
[jack@localhost ~]$ setfacl -m user:mary:rw- /mnt/test/file4
[jack@localhost ~]$ getfacl --omit-header /mnt/test/file4
getfacl: Removing leading '/' from absolute path names
user::rw-
user:mary:rw-
group::r--
mask::rw-
other::r--
[jack@localhost ~]$ ls -l /mnt/test/file4
-rw-rw-r--+ 1 jack user1 0 Jan 12 08:44 /mnt/test/file4   //权限的最后有一个“+”,表示该文件使用了ACL属性设置

​ 此时,mary用户对file4文件也拥有读写权限了,可以添加456内容至该文件中,操作如下:


[jack@localhost ~]$ su - mary
Password:                //输入前文中mary的密码456
Last login: Wed Jan 12 08:40:41 CST 2022 on pts/0
[mary@localhost ~]$ echo 456 >> /mnt/test/file4
[mary@localhost ~]$ cat /mnt/test/file4
456
[mary@localhost ~]$ exit 
Logout
[jack@localhost ~]$ exit 
logout

​ 切换至jones用户,则发现该用户对file4文件是没有写入权限的:


[root@localhost ~]# su - jones
[jones@localhost ~]$ echo "789" > /mnt/test/file4
-bash: /mnt/test/file4: Permission denied        //权限不够
[jones@localhost ~]$ ls -l /mnt/test/file4
-rw-rw-r--+ 1 jack user1 4 Jan 12 08:46 /mnt/test/file4
[jones@localhost ~]$ getfacl --omit-header /mnt/test/file4
getfacl: Removing leading '/' from absolute path names
user::rw-
user:mary:rw-
group::r--
mask::rw-
other::r--

注意:虽然该文件的权限属性中,user1用户组的权限为rw-,且jones也属于user1用户组,但由于ACL中设定的group权限只有r权限,因此,原有文件属性中的组权限rw-的有效性不能高于ACL中group的r–权限,所以jones用户对该文件是没有写入权限的。

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。