Linux文件权限

文件访问者身份有三类:

所有者(owner)、所属组(group)、其他用户(others),当然,还有一个所有人(all),这四个身份的字符分别是u、g、o、a=(u+g+o)。又可以为这三类用户指定三种访问权限:读(read)、写(write)、执行(execute)

我们针对三类访问者可以三种不同级别的访问权限:

分别是读、写、执行。这三种权限显示为r、w、x。

文件类型有几种:d表示目录、-表示文件、|表示链接文件、b表示块设备文件、c表示字符设备文件。

以下图为例,分别是3个文件夹和一个txt文件

首先第一个字符表示文件类型,三个显示d,一个表示-。

其次紧接着的是9个字符,9个字符三三一组,分别对应的是所有者(owner)、所属组(group)、其他用户(others)这三组,当然对应这三组,但每个组内显示的字符代表的是这个组具有的访问权限,也就是读、写、执行,r、w、x。

第一组字符是文件所有者,基本都具备rw权限,也就是读写,但文件不具备执行能力,所以1.txt这个文件在执行字符x处为-,意思是没有执行权限,这三种权限位置按照rwx依次排列,位置不会改变。如果没有某种权限,就会在相应的位置显示-。

往后两组一组是所属组和其他用户,因为所属组和其他用户表示用户的所有者,但又可以访问这个文件,所以权限没有用户所属组那么高。

最后一个点是是扩展权限列表标识。

第二列的数字代表了文件的链接数量

第三第四代表所有者(owner)、所属组(group),可以看到都是root,因为我们是在root这个账户创建的文件和目录

第五列代表了文件的容量,也就是大小,通过对文件1.txt进行编辑后再查询,可以看到文件的容量改变了

第六第七第八列是上次修改的时间,通过截图可以看到1.txt两次的时间不同,但其他三个目录时间仍然相同。

第九列是文件名称

文件权限修改

使用chmod命令:

可以对文件的权限进行修改,格式是:chmod 访问者身份+/-访问权限 文件或路径

通过chmod,我们可以一次给多个身份赋予多个权限,也可以使用-号减少权限。

如果只是想把文件公开,可以

如果觉得指令繁琐,可以采用数字方法进行队权限的修改。

还是chmod但符号变成了数字:chmod 754 1.txt

将rwx分别用421进行表示,那么这个访问身份的总权限就是可以相加的

chmod 754 1.txt中的754分别代表ugo,也就是固定ugo的顺序只能是ugo,(7=4+2+1)(5=4+0+1)(4=4+0+0),还有其他如(6=4+2+0)、(0=0+0+0)

例如这里先将文件权限全部撤销,再赋予754权限

我们可以观察到,之前文件是白色的,但从第一次组访问权限变成可执行后,文件颜色变成了绿色,当我们再次将文件恢复成原来的权限后,颜色就变回白色。

通过ls命令查看文件时,不同的颜色代表着不同的文件类型:

蓝色:目录

绿色:可执行文件

浅蓝色:符号链接文件

红色:压缩文件

紫色红色:图片文件

黄色:设备文件

灰色:其他文件

文件的权限

文件的默认权限

我们可以用umask来查询和修改umask值

默认情况下,管理员新创建的普通文件的权限被设置为:rw-r--r-,用数字表示为644,所有者有读写权限,所属组用户和其他用户都仅有读权限;新创建的目录权限为:wxr-xr-×,用数字表示为755,所有者拥有读写和执行权限,所属组用户和其他用户都仅有读和执行权限。默认权限是通过umask(掩码)来实现的,该掩码用数字表示,实际上是文件权限码的“补码”。创建目录的最大权限为777,减去umask值(如022),就得到目录创建默认权限(如777-022=755)。由于文件创建时不能具有执行权限,因而创建文件的最大权限为666,减去umask值(如022),就得到文件创建默认权限(如666-022=644)。
可使用umask命令来查看和修改 umask值。

umask的修改可以让创建的目录和文件的默认值改变,节省批量修改文件和目录权限的时间。

文件的特殊权限

上面的umask值显示的是四位数字,但文件修改和文件、目录总权限却显示3位数字,因为还有umask中还有一位特殊权限,排在第一位。

特殊权限分为:suid、sgid、sticky,字符分别表示为:s、g、t,八进制表示数:4、2、1

suid和sgid也可以用数字4、2表示,加起来就是6,使用时放在普通权限前方,查看时占据执行符x的位置。

suid和suid分别对应这个文件的用户和用户组,他们使用在使用的时候自动获取root的用户ID和组ID,也就是说拥有suid权限可以自动获取root的用户ID(UID),拥有sgid权限可以自动获取root用户组的组ID(GID),有什么用?相当于执行这个文件时是root用户,特权!

下方是6400,意思是赋予400普通文件权限的同时,还增加特殊权限suid、sgid,x占位符变成s,用户组权限本应该没有任何权限,但还是出现了s,说明特殊权限是要大于普通权限的

sticky权限可以防止其他用户任意删除修改别人文件,但只对目录有效,对文件无效(Linux中目录属于文件的一种),设置sticky权限后,只有文件的所有者才可以删除、修改、移动文件。但如果目录不止设置了sticky权限,还拥有w、x权限,那么root用户也可以删除。

sticky用字符表示为t,用数字表示为1

为了方便观察,我们将正常的目录1删除所有权限并增加sticky权限,发现是在其他用户访问权限的执行符x处更改成为T,更加说明这个特殊权限是针对其他用户,防止他人乱改自己文件的特殊权限。

更改文件用户和用户组

使用chown指令可以更改文件的用户或用户组

chown yonghu2.yonghu3 1.txt

这个指令将本来在root的文件在用户上更改给yonghu2,在用户组上更改给yonghu3

我们继续用chown指令将文件所属更改回root,但刚才我们是一次改两个,用户组和用户中间使用.来隔开,但现在依次修改,说明这个指令如果单个修改,没有.的修改用户,前面有.的修改用户组

chgrp语法格式和chown一样,但chgrp只能更改用户组

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值