Linux文件权限(一)

1.几个基本概念

文件拥有者

因为Linux是多人多任务的系统,所以对不同用户的隐私管理就显得至关重要了,举个栗子,王家有仨兄弟,大毛、二毛和三毛,他们有一个共同的家,但是每个人有每个人的屋子,那么对他们各自的房间来说就是这间房子的拥有者(owner)

群组

继续使用王家三兄弟的栗子,王家的房子有一个客厅,这个地方是大毛二毛还有三毛都可以在这玩的,大毛可以看电视,二毛可以。。啊,扯远了,客厅相当于一个资源,那么王家的所有成员组成了王家这一个群组(group)

其他

王家三兄弟在开心的玩着,这时候隔壁狗剩来串门,但是他没有王家的钥匙,需要有人开门才能进到王家,这时候狗剩就相当于其他人(other)的角色

神仙

在Linux中有一个角色不在五行内超出三界中,具有巨大的权利,那就是root,可以对任何文件进行操作,慎用。。。

与用户群组相关的文件

默认情况下,系统上的账号与一般身份的用户,还有root的相关信息会存放在/etc/passwd文件下;
个人的密码会记录在/etc/shadow文件中;
Linux中所有的组名都会记录在/etc/group文件中,以上三个文件不要删除

文件权限

说完上面的几个概念再来理解文件权限应该会相对容易些,当在控制台使用 ls -al命令时,会列出这个目录下所有的文件(包括隐藏文件),以我的为例,使用后会有这些文件被列出来(文件较多,没有全部列出来)
ls -al命令显示的列表
下面拿出其中的一条记录解释一下每个位置分别代表什么意思

位置12345678910
对应值drwxr-xr-x3rootroot409611月7 16:44builds
释义文件类型owner权限group权限other权限连结文件所属用户文件所属组文件大小文件最后修改时间目录或文件名称

在下面对这些不同的位置一一详细介绍下:
位置1: 字符所代表的文件类型
【d】表示一个目录,比如builds就是一个目录
【-】表示一个文件,比如上边那个大图中的.bash_logout就是一个文件
【l】表示一个连结
【b】表示装置文件里面可供存储的接口设备
【c】表示装置文件里面的串口设备(比如鼠标键盘等)
位置2: 文件拥有者权限
r——文件或者目录的可读权限
w——可写权限
x——可执行权限
这三个权限的位置是固定的,如果没有使用-代替
位置3:
位置4:
位置3和4代表的只是不同对象对某一文件或者目录的权限不同而已,三个字符所代表的意义并没有什么区别
位置5: 表示有多少文件名连结到这一结点
先暂时解释一下结点的概念,每个文件会将其权限与属性记录到i-node(结点)中,但是目录树是使用文件名来显示的,所以每一个文件名都会连结到有一个i-node上,这个属性就是用来记录有几个不同的文件名连结到这一个结点上,如果需要的话会在之后的博文中再进行介绍
位置6: 文件拥有者
如上一截图,目录builds的owner为root
位置7: 文件所属组
如上一截图,目录builds的所属组为root
位置8: 文件大小
默认单位为字节
位置9: 文件最后修改时间
如果最后修改时间距离现在太远,那么会只显示年份,而不会显示具体的时间
位置10: 顾名思义,就是表示目录或者文件名

更改文件权限

介绍完上面的一些基本概念之后,下面来说一下更改文件权限/文件所有者的几个命令,涉及文件权限的命令主要有以下几个:

  • chgrp:更改文件所属组
  • chown:更改文件所有者
  • chmod:更改文件权限
    下面一一介绍一下
1.chgrp
  • 命令格式:chgrp [-R] 组名 文件或目录
    **注:**参数-R的作用是进行递归的持续变更,即如果需要变更目录,那么添加改参数之后,会连同该目录下的所有文件或目录一同变更
  • 命令实例:
    before
    在这里插入图片描述
    after
    在这里插入图片描述
    执行后,将builds目录的所属组由原来的users更改为root
    注意 如果更改的所属组组名不在/etc/group中,那么执行该命令时会报错
    在这里插入图片描述
    当尝试更改为tester时,会因为文件/etc/group中不存在该组名报错
2.chown
  • 命令格式:chown [-R] 所有者名称 文件或目录 或者
    chown [-R] 所有者名称:组名 文件或目录
    [-R]参数的作用同上
    使用与上一命令并无区别,不在此赘述了,但有一点需要注意,如果所设置的所有者在/etc/passwd文件中不存在的话会报错
    在这里插入图片描述
chmod

这一命令用来更改所有者、组以及其他人的权限,有两种方式可以操作,下面就具体展开说一下
方式一: 符号方式改变权限
首先来看下面的表格
在这里插入图片描述
下面还是用builds目录实际操作一下,比如需要将目录builds的权限设定为rwxrwxr-x,那么可以这样操作
chmod g+w builds
命令,会在用户组权限上添加写权限,也可以直接进行使用"="进行设定,比如将权限设定成为rwxr-xr–,可以使用下面的命令
chmod g=rx,o-x builds,如果为所有的身份都加上可执行权限,那么就可以这样设定chmod a+x builds
方式二: 数字方式
前面已经说到Linux在文件权限中,三个身份都有三个代表不同权限的字符r/w/x,因为这三个字符是固定的,所以可以用数字来代表,所以不同字符对应的数字也是固定的,他们的对应关系如下:
r——4
w——2
x——1
这样假如上面的目录builds目前的权限为rwxr-xr–,那么这三个身份所对应的数值为
owner——4 + 2 + 1 = 7(也就是说如果某一身份具有所有的权限,那么对应的数值应该为7)
group——4 + 1 = 5
other——4
了解了对应关系,之后来看一下怎么通过数值修改权限

  • 命令格式:chmod [-R] xyz 文件或者目录
  • 命令实例:
    before
    在这里插入图片描述
    after
    在这里插入图片描述
    Tips:如果文件或者目录不想被其他人看到,可以将其他人的权限设置成0或者- - -

在下一个小节中会说一下权限对文件或者目录的作用

不足之处还望指正——by relon_zhu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值