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

文章目录

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

显示文件类型

相关推荐
m0_714590262 分钟前
TCP粘包和抓包
服务器·网络·php
apple_5056901412 分钟前
深入理解计算机系统 CSAPP 实验lab:Cache Lab
linux
暴力的bug制造机37 分钟前
【Linux学习】Linux开发工具——vim
linux·学习·vim
邓豹爱学嵌入式1 小时前
Linux驱动入门实验班——DHT11、DS18B20模块驱动(附百问网视频链接)
linux·驱动开发·单片机
喵了d喵1 小时前
tcp 网络通信及抓包工具的使用
linux·c语言·学习
Code_Shawn1 小时前
SOMEIP_ETS_061: Sending_two_SOMEIP_Messages_in_a_row
服务器·网络·网络协议·ets·tc8 测试·someip
某x?1 小时前
04-容器基础:深入了解Docker容器
运维·docker·容器
petaexpress1 小时前
美国洛杉矶服务器地址在哪里?
运维·服务器
东边的那根草~1 小时前
2024年8月23日(docker 数据存储)
运维·docker·容器
dv20kuxiang1 小时前
问答泛单页目录站群通用程序——码山侠
服务器