文件的拥有着及拥有组的管理
1.文件的拥有着和拥有组 我们的linux系统 是一个多用户多任务的操作系统那我们在系统当中的每一个文件对于什么样的人能做什么样的事情我们是用权限来设定的这个文件到底是谁的谁是这个文件的用户谁是这个文件组里面的人 如何去理解
例如:现实生活当中我新买了一个手机 为是这个手机的拥有着 对于我的家人 这个手机不是他的 他没有任何支配的权力他不能把这个手机送人 我是可以的他不可以 但是它是可以看这个手机的 使用这个手机 随便在大街上找一个人 这个手机对他而言 即不是手机的所有人也不是我们家的成员 所以他对于这个手机而言就是一个路人甲 也就是我们所说的其他人
用户文件的身份划分为1文件的所有者2 文件所属组3其他人 优先级从高到底 1>2>3 我们看一下系统当中的权限
对于第一个目录 属于root用户 root用户组 我们新建一个用户lee
lee相对于kiosk即不是所有人也不是所有组 属于其他人 我们给lee添加一个kiosk身份
刚才lee是没有kiosk的身份的 现在添加了之后 可以看到lee虽然不是这个kiosk目录的所有人 但他享有所有组的这个身份
我们再建立一个用户westos用户
kiosk的所有人和所有组都不匹配这个用户 westos属于kiosk目录的其他人
kiosk拥有着它会自然而然的使用目录拥有着的权力 而lee这个用户对于kiosk这个目录它不是这个目录的所有人它是kiosk这个组里面的一个成员 他自动归属到kiosk目录的所有组权限 westos对于kiosk自动的享有最后三位的权限 用户的优先级大于所有组的优先级大于其他人的优先级 kiosk即是用户也是用户组 看权限高的那一位 享有用户的权力
下面我们看一看如何改变文件拥有着及拥有组的方法
改变文件的所有人或者所有组可以用chown 只改变所有组用chgrp
我们先创建实验环境 建立几个文件个目录 R表示递归显示 显示目录当中的内容及子目录当中的内容
我们对这个命令进行监控
现在我们对这个文件进行改动 刚才我们建立拉一个用户叫lee 还有一个用户叫westos
我们现在改变file1的所有人 把root 改为westos
我们可以看到 监控上的root改成拉westos
接下来我们改动file2的组 将其改成lee
我同时想改变file3的所有人所属组的属性为westos 两条命令的效果相同
效果如下
当我们如果改变一个目录的所有人所属组的时候
我们可以看到目录的所有人本身已经发生改变了 但是对于目录下的文件的所有人没有发生改变
如果我想目录本身和里面的文件的属性都发生改变 我们需要做递归的修改
我们先把目录的所有人改回来
递归修改加上R 目录本身以及里面的内容都做修改
再改回来root
同时修改所有人和所有组
改变目录的所有组
只有目录本身的所有组改变了 因为没有加R
修改目录本身和里面文件的所属组
小结:
[root@server1 ~]# chown westos /mnt/file1 ##改变一个文件的所有人
[root@server1 ~]# chgrp lee /mnt/file2 ##改变一个文件的所属组
[root@server1 ~]# chown westos.lee /mnt/file3 ##改变一个文件的用户和用户组
[root@server1 ~]# chown westos:lee /mnt/file3 ##与上面的意义相同
[root@server1 ~]# chown -R westos.lee /mnt/test/ ##只修改目录的所有组
[root@server1 ~]# chown -R westos /mnt/test ##递归式的修改目录的所有人
[root@server1 ~]# chgrp -R westos /mnt/test/ ##递归式的修改目录的所有组
[root@server1 ~]# chown -R westos.lee /mnt/test/ ##递归式的修改所有人和所有组
[root@server1 ~]# chown -R westos:lee /mnt/test/ ##与上面相同
*************************************************************************
要注意的是这两条命令chown和chgrp只能用超级用户去执行其他用户是不可以的