简单介绍linux的用户、用户组和文件权限

用户、用户组与others

相信大多数人和我一样,在linux中使用最多的就是root用户,如果要问我为什么,我只会说因为root用户在linux上无所不能
其实linux拥有一个极其优雅的用户与用户组的设计,对其多了解一下有助于我们更好的解决一些稀奇古怪的问题。
了解一个设计,首先要知道这个设计要解决的问题。

其实用户与用户组并非linux的专属,在windows上也是很常见的功能,只是一般windows是作为我们的个人办公环境,并不会出现多个人要同时使用一个windows系统的场景,而普遍情况下linux都是被多个人同时使用的。

所以,我们很容易就可以想到,在没有用户和用户组时,如果小A和小B同时使用一个linux机器,小A就可以直接删除或者查看小B的文件,就好像我和你同时使用微信,然而我可以看到你微信中的好友聊天记录,这是一件多么恐怖且愚蠢的事情啊。所以设置不同的用户,每个人只能看到自己的文件,是一件很重要的事情。

而用户组呢,顾名思义就是用户的集合,比如你发了一条朋友圈,设置了只有打了家人标签的好友可见,这里的家人标签对这条朋友圈来说就是一个用户组。

文件权限

文件看累了,我们来首先来看张图。


image.png
  • 第一列说明文件的类型和权限
    一般由10个字符组成,第一个字符说明文件是目录、文件或者链接文件。
    d代表是目录
    -代表是文件
    l代表是链接文件
    b代表是可供存储的接口设备
    c代表设备文件里面的串行端口设备,鼠标键盘等
    
    接下来每3个字符是一组,为rwx3个字母的组合。r为可读权限,w为可写权限,x为可执行权限。
    第一组是文件所有者的权限,第二组是同用户组的权限,第三组是非同用户组的权限。
  • 第二列表示有多少不同的文件名连接到这个inode上,关于inode在此不做介绍啦
  • 第三列表示这个文件的所有者
  • 第四列表示这个文件的所属用户组
  • 第五列表示这个文件大小,默认单位是B,可以使用-h参数,会打印更已读的单位
  • 第六列是文件的最近修改时间或者创建时间

修改文件权限

  1. chgrp命令
    改变用户的所属用户组,注意文件的所有者并不一定要属于文件的所属用户组。
# 将test.txt文件改为demogroup组
chgrp demogroup test.txt

2.chown命令
改变文件的所有者和所属用户组

# 将test.txt文件的所有者改为zhangsan,所属用户组改为demogroup
chown zhangsan:demogroup test.txt
# 只修改用户组
chown .demogroup test.txt
  1. 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
    

你可能感兴趣的:(简单介绍linux的用户、用户组和文件权限)