在了解权限管理之前先创建一些用户和用户组便于后续学习,在root用户下操作:
# 创建两个用户组 [root@localhost data]# groupadd kaifa [root@localhost data]# groupadd ceshi # 创建三个用户,指定他们进入的用户组 [root@localhost data]# useradd -g kaifa zhangsan [root@localhost data]# useradd -g kaifa lisi [root@localhost data]# useradd -g ceshi wangwu # 设置三个用户的密码,这里我统一设置为123 [root@localhost data]# passwd zhangsan [root@localhost data]# passwd lisi [root@localhost data]# passwd wangwu
登录张三用户,在~目录中创建一个1.txt
文件,里面随便写点东西用于后续学习
[zhangsan@localhost ~]$ touch 1.txt [zhangsan@localhost ~]$ ls 1.txt
现在来捋一下刚刚的操作:创建了开发和测试两个用户组以及三个普通用户,其中张三和李四属于开发组,王五属于测试组,然后登录张三用户在~目录下创建1.txt文件,用图片来标识这些关系的话,如下所示
好了,之前的操作已经理清了,现在我们分析一下1.txt
文件和这几个用户之间的关系:
张三创建了这个文件,那么张三就是该文件的所有者
张三创建了这个文件,同时张三属于开发组,那么这个文件也属于开发组,开发组下除了张三还有李四,那么李四就是同组的用户
王五既不是文件的所有者,和文件也不属于同一个组,那么对于文件来说李四就是其他组的用户
如果该文件不是你创建的,你也不知道该文件的所有者是谁,属于哪个组,可以用ls -l
或者ll
命令来查看
通过分析可得知,文件与用户可以有三种关系:所有者、同组,其他组,请务必牢记这三种关系,他与权限有着密切的关联
权限代表着用于对文件/文件夹操作的控制,可以控制用户是否有权利查看文件、修改文件以及执行文件
如何查看权限信息
详细的权限信息,在我们使用ll
命令的时候就可以看到,列表的第一列就代表权限信息
可以发现他给出的权限信息为-rw-r--r--
,完整的权限信息是由四部分组成,将他们拆开后如下所示
后面的三组就不细说了,结合之前说的就能理清,这里介绍下第一位文件类型,简单创建几个文件观察首位的变化
如果是文件夹,首位就是`d`,如果是文件首位就是`-`,如果是软连接首位就是`l`......更多的这里就不细说了 [zhangsan@localhost ~]$ touch 1.txt [zhangsan@localhost ~]$ mkdir -p files/1/2/3 [zhangsan@localhost ~]$ ln -s files/1/2/ 3 [zhangsan@localhost ~]$ ll 总用量 0 -rw-r--r--. 1 zhangsan kaifa 0 12月 22 16:35 1.txt -rw-r--r--. 1 zhangsan kaifa 0 12月 22 16:35 2.txt lrwxrwxrwx. 1 zhangsan kaifa 10 12月 22 16:34 3 -> files/1/2/ drwxr-xr-x. 3 zhangsan kaifa 15 12月 22 16:33 files
现在回过头来看1.txt
的权限信息-rw-r--r--
,首先通过首位可以看出他是一个普通文件,接下来分析一下他的权限效果
zhangsan作为所有者,可以对文件进行查看和编辑
lisi与文件属于同一个组,可以对文件进行查看操作
wangwu属于其他组,同样可以对文件进行查看
然后切换到/home目录,再次查看改目录下的权限信息
[zhangsan@localhost ~]$ cd /home [zhangsan@localhost home]$ ll 总用量 0 drwx------. 3 lisi kaifa 78 12月 22 14:24 lisi drwx------. 3 wangwu ceshi 78 12月 22 14:24 wangwu drwx------. 6 zhangsan kaifa 155 12月 22 16:35 zhangsan
之前说过每个目录代表着一个用户,而每个目录的权限都为drwx------
,也就是说除了目录所有者之外任何人都没有权限查看该目录,这也就解释了为什么不能查看其他用户目录的问题
权限信息在文件/文件夹上的作用
权限信息在文件和在文件夹上起到的作用分别是不一致的,具体如下
当目标是一个文件时:
通过r可以控制是否有权限查看该文件的内容
通过w可以控制是否有权限修改文件的内容
通过w可以通知是否拥有执行的权限
当目标是一个目录时:
通过r可以控制是否有权限查看改目录下的文件
通过w可以控制是否有权限增删目录下的文件
通过w可以通知是否拥有执行的权限