更改文件的属主和属组
7.1.1 更改文件的属主和属组
改变文件的所属关系用到命令(只有管理员可以使用该命令):
chown 命令:用于改变文件(或目录)的属主。
chgrp 命令:用于改变文件(或目录)的默认属组。
如果你要对目录进行操作,加参数 -R 相当于递归操作,将基于目录下的所有文件或目录一同操作。
1. chown、chgrp 使用语法:
命令使用格式:chown user:group filename (chown 用户名称:组名称 文件名称)
比如:把文件的属主和属组改为 hr,san。
[root@xuegod63 ~]# chown hr:san a.txt #修改 a.txt 的属主为 hr 用户、属组为 san 组
1) 仅改变文件/目录的属主。
命令使用格式:chown user filename (chown 用户名称 文件名称) 比如:把文件的属主改为 san 用户。
[root@xuegod63 ~]# chown san a.txt
2) 仅改变文件/目录的属组。
命令使用格式:chown :group filename (chown :组名称 文件名称)
比如:把文件的属组改为 miao 这个组(只修改组,丌用指定属主)。
[root@xuegod63 ~]# chown :miao a.txt
3) 自动继承这个用户所有的组(丌用指定属组)。
命令使用格式:chown user: filename (chown 用户名称: 文件名称)
[root@xuegod63 ~]# chown san: a.txt
4) chgrp 命令,仅用于修改文件/目录的属组。
命令使用格式:chgrp hr filename (chown 组名称 文件名称)
比如:只用于修改文件的属组。
[root@xuegod63 ~]# chgrp hr f.txt
-R :递归(目录下的所有内容都更改,否则只修改目录)。
例 7.4:chown 使用示例。
[root@xuegod63 ~]# touch {a,b,c}.txt #同时创建 a.txt 和 b.txtx 和 c.txt 文件。
[root@xuegod63 ~]# ll *.txt
-rw-r--r-- 1 root root 0 5 月 8 21:03 a.txt
-rw-r--r-- 1 root root 0 5 月 8 21:03 b.txt
-rw-r--r-- 1 root root 0 5 月 8 21:03 c.txt
[root@xuegod63 ~]# chown mk a.txt #修改 a.txt 文件属主为 mk 用户。
[root@xuegod63 ~]# ll a.txt
-rw-r--r-- 1 mk root 0 5 月 8 21:03 a.txt
[root@xuegod63 ~]# chown mk:mk a.txt #修改 a.txt 文件属主和属组为 mk 用户。
[root@xuegod63 ~]# ll a.txt
-rw-r--r-- 1 mk mk 0 5 月 8 21:03 a.txt
[root@xuegod63 ~]# chown :root a.txt #修改 a.txt 文件和属组为 root 用户。
[root@xuegod63 ~]# ll a.txt
-rw-r--r-- 1 mk root 0 5 月 8 21:03 a.txt
2. 实验:一个文件只有读的权限,拥有者是否可以写这个文件。
[root@xuegod63 ~]# su - mk #切换 mk 普通用户登彔系统。
[mk@xuegod63 ~]$ touch a.txt 在家目录下创建 a.txt 文件。
[mk@xuegod63 ~]$ ll a.txt #使用长格式查看文件的属性,可见权限为 rw-rw-r--。
-rw-rw-r-- 1 mk mk 0 5 月 8 21:07 a.txt
1) 在另一个终端上,以 root 身份登彔:
[root@xuegod63 ~]# chmod 000 /home/mk/a.txt #修改成 000 权限。
[root@xuegod63 ~]# ll /home/mk/a.txt #使用长格式查看文件的属性,可见权限为 。
---------- 1 mk mk 14 5 月 8 21:08 /home/mk/a.txt
2) 回到以 mk 身份登彔的终端:
[mk@xuegod63 ~]$ vim a.txt #写入内容 aaaaa ---》 :wq! 强制保存并退出。
3) 在另一个终端上,以 root 身份登彔:
[root@xuegod63 ~]# cat /home/mk/a.txt #查看文件内容。aaaaa
实验结果:文件所有者一定可以写文件。 就像 root 可以对 shadow 强制写。 因 shadow 的拥有者是 root 。