【Linux】深入剖析文件权限与用户

1、Linux中的用户分类

1.1 Linux中的两类用户:

超级用户(root),普通用户。其中root用户只能有一个, 拥有对系统的最高权限,而我们知道Linux是一个多用户,这里的多用户指的是可创建多个普通用户。若普通用户想提升某个指令的权限,首先在vim/etc/sudoers中配置好,为此用户添加权限 ,之后在输入命令时加sudo即可提升权限,完成root账户能做的事
在这里插入图片描述

1.2 对文件访问者的分类

分为文件拥有者文件所属组其他人三类
文件拥有者即创建文件的人,其他人即文件拥有者之外的人,文件所属组则是文件拥有者添加进组,方便完成团队开发
当我们进入某个目录后,输入 ls -l 指令,则列出文件的详细信息:
在这里插入图片描述
首先红色框处有十个字符,第一个表示文件类型,剩下的九个稍后分析
绿色箭头指向文件拥有者 棕色箭头指向文件所属组

2、文件权限的分类

文件权限分为可读 r,可写 w,可执行 x
 当我们进入某个目录后,输入 ls -l 指令,则列出文件的详细信息,我们继续分析左侧的10个字符,上文说到的第一个字符表示文件类型,剩下的九个三个为一组,分别表示文件拥有者,文件所属组和其他人对该文件的权限
在这里插入图片描述
绿色箭头的rw-表示文件拥有者对该文件可读可写不可执行,- 表示不具备该位置对应权限
绿色箭头的r–表示其他人对该文件可读不可写不可执行


3、何为文件所属组

 首先,Linux中,所有用户都要隶属于某一个组,哪怕这个组只有你一个人,其次为什么要有组存在:是为了能更灵活地进行权限配置,满足团队协作

在这里插入图片描述
 划分文件所属组使得不仅文件拥有者对该文件具有权限,还能很方便的为组内人员添加删除权限,将组外人隔绝在外,将组内人员形成一个整体


4、如何更改文件访问权限

4.1 加减权限模式修改

语法: chmod [参数] 权限 文件名
示例: chmod u-rwx file.txt  ->file.txt文件对此用户user去除rwx权限

  • 减号可改为加号,则表示文件对用户加权限
  • u改为g,则修改所属组的权限
  • u改为o,则修改其他人的权限
  • u改为a,则同时修改所有人的权限(少用)

例:chmod u-rwx,g-rwx,o-rwx file.txt  -> file.txt文件对所有人去除rwx权限

修改文件权限后对普通用户的影响:
  当没有w权限时无法写入

echo "hello world">file.txt    //不支持写入

 当没有r权限时无法读

cat file.txt       //不支持读

修改文件权限后对root用户的影响:
 root用户对文件操作不受权限影响,可切换root用户后进入/home目录,对文件进行操作

4.2 bit位八进制模式修改

各种权限符号组合对应的八进制如图:
在这里插入图片描述
语法: chmod xxx 文件名   注:xxx为3个八进制数
示例: chmod 000 file.txt  ->file.txt文件对所有人去除rwx权限
    chmod 777 file.txt  ->file.txt文件对所有人加上rwx权限
    chmod 664 temp.tgz  ->temp.tgz文件对文件拥有者有读写权限,对文件所属组有读写权限,其他人只读
在这里插入图片描述

5、深入理解目录的权限

对目录的三操作:
1.cd dir进入目录
 对应x 权限(易错),是最基本的权限,没有x权限r和w都会受影响报错
2.ls -al显示目录下内容
 对应r 权限
3.touch file.txt / rm file.txt:在目录下创建文件或删除文件
 对应w 权限


6、如何更改文件拥有者

语法: chown [参数] 用户名 文件名
注:若在root账号下可直接使用上面的指令,若此时是普通用户,则在指令前加sudo,前提先在root账号中在vim/etc/sudoers中配置好添加用户,获得权限才能sudo
示例:
将文件拥有者改为root:
 sudo chown root file.txt
将文件所属组改为root:
 sudo chgrp root file.txt
将文件拥有者和文件所属组改为普通用户:
 sudo chown yxy:yxy file.txt

7、umask与文件目录的默认权限

 不知各位读者是否疑惑,当我们输入 ls -l 指令,列出文件的详细信息,为什么这个文件或目录的权限就是这样的,而不是可自定义或者全是rwx或者全是- - -,究竟是何种规则作用下呈现出现在的最终权限
在这里插入图片描述
 事实上我们看到的最终权限是由umask和起始默认权限共同作用得出的,其中umask可以修改,由此实现最终权限自定义,如你不想生成的文件被其他人有任何读写执行操作,则可改umask限制
关于起始默认权限:文件起始默认default权限为666,目录起始默认default权限为777
关于umask:umask是一个四位8进制数,umask的后三位表示不应该在最终权限出现的位
在这里插入图片描述
 最终权限的运算规则还可以这样算:最终权限=(起始默认default权限)&(^umask)
 uamsk可修改:通过 umask [四位8进制数] 可修改umask起始值


8、粘滞位

当前出现的问题:只要other对该目录有写权限,则它可以删除该目录下别人的文件,而不论此人是否有这个文件的写权限->为解决引入了粘滞位
语法(sudo) chmod +t [目录名]
作用:当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  • 超级管理员删除
  • 该目录的所有者删除
  • 该文件的所有者删除

注意点:

  • 粘滞位是对目录操作的,不是对文件操作
  • 粘滞位对目录所属者不起作用,约束other
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值