【Linux】权限管理与相关指令

avatar
作者
筋斗云
阅读量:4

文章目录

1.权限、文件权限、用户

  通过一定条件,拦住一部分人,给另一部分权利来访问资源,比如Vip、门禁等。

(1)权限 = 用户角色 + 文件属性。

(2)Linux中的用户:root超级管理员、普通用户。

(3)对于文件来说有三种角色:user 所有者、group 所属组用户(所有者所在组的用户)、others 其它用户。“组”的这种权限管理概念,主要是多人协作时有用。
在这里插入图片描述

文件权限的理解以及对应八进制数值表示、设置目录为粘滞位

  • r(4):读权限,用户能查看指定目录内的文件;读取文件内容;
  • w(2):写权限,用户能在目录内创建、移动、修改和删除文件;修改文件内容;
  • x(1):执行权限,用户可以进入这个目录;可以执行文件;
  • -:表示不具有权限;
  • rw(6):读写权限;
  • wx(3):写和可执行;
  • rwx(7):可读可写可执行;
  • —:三个‘-’号表示该用户无任何权限。

对于x可执行权限的理解:拥有可执行权限!=可执行,可执行==具有可执行权限+文件是可执行文件。

  • 对一个目录或文件无x权限,意味着无法cd到目录,无法在目录下执行命令;也无法执行一个可执行文件;

  • 对一个目录或文件无r权限,意味着无法用ls查看目录内有哪些文件,也不能用cat读取文件内容;

  • 对一个目录或文件无w权限,意味着无法在这个目录创建文件,也无法删除、编辑文件。

有几点要注意:目录有-r权限,不代表可以进入目录读取文件,这一点是-x控制的而不是-r。目录具有-x权限,没有-r权限,则可以cd进入这个目录,也可以在这个目录下执行命令;但由于没有-r权限,即使可以执行ls命令,也任然无法读取目录下有哪些文件或目录。

但有一点并不科学,只要用户有目录的写权限,那就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限,例如张三创建的文件,凭什么李四能删除掉。一个文件能不能被删除,与用户是否有这个文件的写权限无关,只要有这个文件所在目录的写权限,即使是普通用户也可以为所欲为,为了解决这个问题,Linux引入了粘滞位

chmod +t 目录 设置目录为粘滞位,该目录下的文件只能由超级管理员、目录的所有者或文件的所有者删除。

多个Linux用户协作,如果想实现多个用户文件信息共享,注意不能在任何一个用户家目录里面创建文件来共享(只有拥有者对家目录有权限),而是在系统的非用户目录下创建共享目录,并且对other用户放开所有权限。

但这样还是会出问题,比如张三在这个共享目录创建了一个文件,这个文件张三只想给李四看,王五就不爽了把这个文件删了,所以需要使用粘滞位来防止这种情况。不开放写权限也可以解决问题,但是这样一来其它用户就无法再共享目录中创建文件,那就无法做到共享了。

文件类型

  • d:文件夹(目录);
  • -:普通文件;
  • l:软链接(类似Windows的快捷方式打开软件);
  • b:块设备文件:硬盘、光驱;
  • p:管道文件;
  • c:字符设备文件:屏幕显示器;
  • s:套接口文件。

Windows系统通过后缀区分文件类型,但是Linux不是以后缀区分,也就是Linux的文件不需要后缀。但我们习惯使用Windows,学习Linux创建文件也习惯加上后缀让我们自己好区分。

虽然Linux文件不需要后缀,但不是说Linux文件不需要文件后缀,比如在Linux使用gcc编译器变成C/C++文件,那gcc编译器就会区分了,如果不是.c或.cpp结尾,没办法编译。

2.权限相关的常用指令

su

su:切换超级用户
su [用户名]:切换用户

会提示输入密码。

超级用户的命令提示符是#,普通用户是$。

sudo

给任何指令提权,以root的身份执行:sudo 后接任何指令

需要输入你的密码,不是root用户的密码,很奇怪!

chmod

修改文件权限,只有文件的拥有者和root用户可以修改文件权限。

-R 递归修改目录权限

+号增加权限,-号减少权限,=号赋予权限

u:user,即所有者
chmod u+rwx filename
chmod u-rwx filename

g:group,即所属组
o:other,即其它用户
a:all,所有用户

普通用户如果对这个文件没有相应权限,即使这个文件的所有者是你,那也无法执行相应操作!
在这里插入图片描述
只有root不受权限约束!

使用权限数值修改权限:
chmod 744 fimename
第一个7即文件拥有者可读可写可执行;
第二个4即所属组成员可读;
第三个4即其它用户可读。

chown

修改文件或目录的拥有者。

-R 递归修改目录下的文件所属者

chown username filename

chown zhangsan test.c

chgrp

修改文件或目录的所属组

-R 递归修改目录下的文件所属组

chgrp [-R] 用户组 文件名

umask

查看、修改或设置文件掩码,超级管理员用户的默认文件掩码一般是0022,普通用户是0002

新建文件的默认权限是0666,新建目录的默认权限是0777。但创建后的文件或目录不是这个默认权限值,因为会受到umask文件掩码的影响,实际上创建文件或目录的权限是:默认权限 & ~umask,按位取反后的umask文件掩码,按位与文件或目录的默认权限。

也可以不用这么麻烦去算,直接把默认权限减去文件掩码就能得到创建后的权限,不过要记住权限值的原理并不是相减得到,而是上述说的默认权限 $ ~umask

umask 查看
umask 044 设置或修改为044

whoami

显示当前登录用户

file

显示文件类型

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!