简单介绍linux的用户、用户组和文件权限
2020-08-16 本文已影响0人
菜菜少吃菜
用户、用户组与others
相信大多数人和我一样,在linux中使用最多的就是root用户,如果要问我为什么,我只会说因为root用户在linux上无所不能。
其实linux拥有一个极其优雅的用户与用户组的设计,对其多了解一下有助于我们更好的解决一些稀奇古怪的问题。
了解一个设计,首先要知道这个设计要解决的问题。
其实用户与用户组并非linux的专属,在windows上也是很常见的功能,只是一般windows是作为我们的个人办公环境,并不会出现多个人要同时使用一个windows系统的场景,而普遍情况下linux都是被多个人同时使用的。
所以,我们很容易就可以想到,在没有用户和用户组时,如果小A和小B同时使用一个linux机器,小A就可以直接删除或者查看小B的文件,就好像我和你同时使用微信,然而我可以看到你微信中的好友聊天记录,这是一件多么恐怖且愚蠢的事情啊。所以设置不同的用户,每个人只能看到自己的文件,是一件很重要的事情。
而用户组呢,顾名思义就是用户的集合,比如你发了一条朋友圈,设置了只有打了家人标签的好友可见,这里的家人标签对这条朋友圈来说就是一个用户组。
文件权限
文件看累了,我们来首先来看张图。
image.png
- 第一列说明文件的类型和权限
一般由10个字符组成,第一个字符说明文件是目录、文件或者链接文件。
接下来每3个字符是一组,为rwx3个字母的组合。r为可读权限,w为可写权限,x为可执行权限。d代表是目录 -代表是文件 l代表是链接文件 b代表是可供存储的接口设备 c代表设备文件里面的串行端口设备,鼠标键盘等
第一组是文件所有者的权限,第二组是同用户组的权限,第三组是非同用户组的权限。 - 第二列表示有多少不同的文件名连接到这个inode上,关于inode在此不做介绍啦
- 第三列表示这个文件的所有者
- 第四列表示这个文件的所属用户组
- 第五列表示这个文件大小,默认单位是B,可以使用-h参数,会打印更已读的单位
- 第六列是文件的最近修改时间或者创建时间
修改文件权限
- chgrp命令
改变用户的所属用户组,注意文件的所有者并不一定要属于文件的所属用户组。
# 将test.txt文件改为demogroup组
chgrp demogroup test.txt
2.chown命令
改变文件的所有者和所属用户组
# 将test.txt文件的所有者改为zhangsan,所属用户组改为demogroup
chown zhangsan:demogroup test.txt
# 只修改用户组
chown .demogroup test.txt
- chmod命令
改变文件的权限。linux文件的基本权限分为r、w和x,可以分别用数字表示:
r:4
w:2
x:1
对每个文件而言,owner、group和others都各自有自己的文件权限,这三个数字的累加之和就代表了某种身份下的文件权限。而chmod命令后面接的三个数字其实就是对应这三种身份的。
chmod还有一种用法是使用u、g、o、a配合+、-、=来改变文件权限。# 给所属用户组增加可执行权限 chmod g+x test.txt # 给所有身份增加可读权限并删除可写权限 chmod a+r-w test.txt