【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

显示文件类型

相关推荐
Yana.nice1 小时前
openssl将证书从p7b转换为crt格式
java·linux
AI逐月1 小时前
tmux 常用命令总结:从入门到稳定使用的一篇实战博客
linux·服务器·ssh·php
想逃离铁厂的老铁1 小时前
Day55 >> 并查集理论基础 + 107、寻找存在的路线
java·服务器
小白跃升坊1 小时前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
跃渊Yuey2 小时前
【Linux】线程同步与互斥
linux·笔记
杨江2 小时前
seafile docker安装说明
运维
舰长1152 小时前
linux 实现文件共享的实现方式比较
linux·服务器·网络
好好沉淀2 小时前
Docker开发笔记(详解)
运维·docker·容器
zmjjdank1ng2 小时前
Linux 输出重定向
linux·运维
路由侠内网穿透.2 小时前
本地部署智能家居集成解决方案 ESPHome 并实现外部访问( Linux 版本)
linux·运维·服务器·网络协议·智能家居