Linux学习-第六章

文件权限

1. 文件权限概述

Linux为了保证系统中每个文件的安全,引入了文件权限机制。针对系统中的每一个文件Linux都可以提供精确的权限控制。它可以做到不同的用户同一个文件具有不同的操作权力。而通常这个权力包括以下3个:

  • 读的权力(Read,简称r)
  • 写的权力(Write,简称w)
  • 执行的权力(eXecute,简称x),在Linux系统中,可执行的文件的扩展名一般叫做:xxx.sh,在windows系统中可执行文件扩展名一般为xxx.exe。

具体的权限值:rwx(读、写、执行)。这个我们已经知道了。但是上面还提到了 “不同的用户对同一个文件可以有不同的权限”中“不同的用户”指的是哪些用户呢?所以这个文件的用户也是包括3类用户:

  • 文件拥有者(User,简称U):该文件的创建人;
  • 同组用户(Group,简称G):和创建人在同一组的用户;
  • 其他组用户(Other,简称O):和创建人不在同一组的用户。

这就是非常著名的UGO模型。也就是说一个文件的权限包括三组:

  • 第一组U:我们可以给文件的创建者设置rwx权限;
  • 第二组G:我们可以给文件创建者的同组人员设置rwx权限;
  • 第三组O:我们可以给和文件创建者不在同一组的人员设置rwx权限。

前面在写ls -l命令的时候,出现的rwxr-xr-x其实就是这个,一共是九个字符,三三一组,每组代表U、G、O的权限。第一个rwx是U的权限,第二个是G的权限,第三个是O的权限。

2.查看文件的权限

采用 “ls -l” 命令可以查看文件的具体权限,如下:
在这里插入图片描述
每一个文件或者目录采用 ls -l 查看之后,第一个字段描述了文件类型 + 文件的权限。第一个字段共10个字符:

  • 第1个字符:代表文件的类型, “ - ”代表文件,“ d ”代表目录
  • 其实Linux中文件的类型一共有七种:
    • “ - ” 代表普通文件;
    • “ d ” 代表目录;
    • “ l ” 代表软连接;
    • “ c ” 代表字符设备(通常以字节流的方式访问);
    • “ p ” 代表管道文件(主要用于进程间通讯);
    • “ s ” 代表套接字文件(主要用于网络通讯);
  • 第2,3,4个字符:代表文件创建者对该文件的权限;
  • 第5,6,7个字符:代表与文件创建者在同一组的用户对该文件的权限;
  • 第8,9,10个字符:代表其他组人员对该文件的权限。

3. 基于UGO设置文件权限

修改权限的命令是:chmod,如果采用UGO方式修改权限的话,大致语法是这样:

  • 给同组人员添加(用加号+)写权限:
chmod g+w test1.java
  • 给同组人员和其他组人员添加写权限(不同组之间用逗号隔开):
chmod g+w,o+w test1.java

给同组人员和其他组人员添加读和写权限:

chmod g+rw,o+rw test1.java

删除(用减号 -)同组人员和其他组人员写的权限:

chmod g-2,o-2 test1.java

4. 基于421设置文件权限

421采用不同的数字来表示不同的权限,我们前面说了一个文件会有rwx(读、写、执行)的权限,那把rwx当成三位二进制,如果某一位上为1表示有权限,0表示没有权限,那刚好读就是100,即4;写就是010,即2;执行就是001,即1。

  • 4代表读
  • 2代表写
  • 1代表执行

例如:如果让一个用户读、写、执行权限都有的话,那就是111,即4+2+1=7,那么7就代表rwx权限都具备,其他的组合也是类似。不过需要注意一下,有些数字设置可能是不合理的,比如说3,即011,这个数字代表的是有写的权限,但是没有读的权限,说实话这不是扯淡呢么,我写的时候不就已经读了么,这里不合理的情况,稍微注意一下。
所以通过421这几个数字的组合一共有以下几种:

  • 0:无权限;
  • 1:x;
  • 4:r;
  • 5:r + x;
  • 6:r + w;
  • 7:r + w + x;
    也就是一共6个数字:0 1 4 5 6 7;
    使用421设置权限,基本语法是这样的:
chmod 三个数字 文件名

例如:

chmod 755 test1.java    # 表示权限:rwx r-x r-x

5. chown修改文件拥有者

在Linux中,可以使用 chown(change owner) 命令来修改指定文件或目录的拥有者和所属组。chown命令基本语法如下:

chown [选项]...[所有者][:[所属组]] 文件...

其中,所有者和所属组可以是用户名或用户ID、组名或组ID,如果省略冒号:和所属组,则默认修改文件的所属者。(一般来说chown就用来修改文件拥有者就行,chgrp用来修改文件所属组)。
下面是一些常用选项:

  • -R:递归修改,包括子目录和文件;

把a.txt文件拥有者从root改为zyx:

chown zyx a.txt    # 由于只是个文件,所以没必要加-R参数

在这里插入图片描述
把test文件夹的拥有者从root改为zyx:

chown -R zyx test

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值