linux学习笔记之权限的管理

努力学习的少年 努力学习的少年     2022-12-19     356

关键词:

1.Linux权限的概念

超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情,受到某些权限的限制。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

命令 :su 【用户名】
作用:切换用户
su - 从普通用户切换到超级用户

指令:
exit,logout:退出当前用户。

2.Linux权限管理

1. 文件访问者的分类

文件的权限主要是用来限制普通的用户,超级用户root基本不受限制。
文件中有两种权限:
1.相对文件来说,可以分为3种用户:

  • 文件拥有者 ( owner 缩写u)
  • 文件的所在组(group 属组,缩写g)
  • 其他人(既不是文件的所有者也不是文件的所在组) (other 其他,缩写o)
    文件可以分别对这3种用户设置权限。
    注意:目录也属于文件中的一种

为什么要有所属组的存在?
例如:此时你们都组A和组B在同一家公司,用的是同一台服务器,假如你有一个文件file.c,此时文件的拥有者就是你,王五和李四就和属于文件的所在组,而张三就是其他人other。所以这时候你可以设置这个文件的权限,让组内的人可以读取这个文件的内容,让其他人不能读取这个文件的内容,此时张三就不能读取这个文件的内容。
如果你有一个文件,你只为了某些人只能看这个文件的内容,而不想让其它人看这个文件的内容,你可以把能看这个文件的内容拉进你的所属组,然后设置权限,让所属组可以看文件的内容,让其它人不能看这个文件。所以所属组的存在是为了更灵活的进行权限的配置,满足团队的协作。

2.文件的类型和访问的权限:

由指令ll可以查看文件的属性,那么这些文件属性代表的是什么。

上面的红方框代表的是文件所有者,绿方框代表的是文件所在组

我们看红色方框中符号,我们可以看到每个文件中都有10个符号,那么这10个符号代表的是什么意思。
我们以dir3文件为例子:

第1位代表的文件的类型有:

  • d:目录
  • -:普通文件
  • l:软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

文件字符代表权限的含义:

  • r:代表读,对于文件来说,具有查看文件内容的权限,对于目录来说,具有查看该目录下的文件权限。
  • w:代表写,对于文件来说,具有在文件中写内容的权限,对于目录来说,具有在目录底下创建文件或目录的权限
  • x:代表可执行,对于文件来说,具有执行文件的权限,对于目录来说,具有进入目录的权限

后9个符号代表的权限,2-4位字符是文件所有者的权限,5-7位字符是文件所在组的权限,8-10位字符是其他人的权限
这三种用户里的权限都有3个字符:
3个字符种的第一个字符的位置代表该用户是否有读的权限:如果有则为 r,没有为 -;

第二个字符的位置代表该用户是否有写的权限:如果有为w,没有为 -;

第三个字符的位置代表该用户是否有可执行的权限:如果有为x,没有为 -;

我们知道这些以后,那么dir3文件是什么类型的文件和它对三种用户都有什么权限?

答:dir3是目录,对于文件拥有者和文件的所属组都是可读可写可执行,对于其他人是可读可执行 当不能写,文件的拥有者和所属组都为sjp。

看完权限后,我们在来看下面的属性:


上面绿色框代表的是:该文件被硬链接的次数。

上面绿色框代表的是:文件内容最近一次被修改的时间

上面红色框代表的是:文件名

设置权限

语法:

  • chmod 用户+权限 文件名 给文件指定的用户加上指定的权限
  • chmod 用户-权限 文件名 删去文件指定的用户加上指定的权限
  • 用户:u(文件拥有者),g(文件所属组), o(其它人 )

例子:

  • chmod u-r test.1 : 删去test.1拥有者的读权限
  • chmod g+ rwx test.1: 给test.1的所属组加上读,写,可执行的权限
  • chmod -rwx test.1: 删去拥有者,所属组,其它人的读,写,可执行的权限
  • chmod +rw test.c1: 给test.1的拥有者,所属组,其它人 加上读,写权限

用数字来进行权限:
我们用户权限三个字符提取出来看,用二进制的0或1来来代表这三个字符权限的有无,如果该用户有该权限就表示为1,没有就表示为0,例如:

然后由二进位转换为八进制位:

rwx的八进制位就是7,- w -的八进制位就是 2,也就是说 你想要给test.1文件所有用户设置读写可执行权限,直接 chmod 777 test.1 即可。

例子

  • chmod 666 test.1: 给test.1文件中的所有用户设置读写的权限。
  • chmod 000 test.1: 删去拥有者,所属组,其它人的读,写,可执行的权限
  • chmod 600 test.1: 仅给拥有者设置可读可写的权限

以上是两种给文件设置权限的方法,不管用哪种方法都是一样的。

3.文件的默认权限

对于我们刚创建的文件,文件中对三种用户都有固定的权限。这个固定的权限位默认的权限
umask: 查看umask值
比如: 0002
第一位0是文件的特殊权限
后三位002是umask值

默认权限的计算

  • 系统默认不能建立可执行权限的文件,需要手工赋予
  • 所以文件默认的最大的权限为 666目录的默认权限为 777
  • 默认权限=默认最大权限-umask值(默认的权限需要换算成字母进行相减)
  • 666换算成字母为 rw- rw- rw- ,002换算成字母为 — --- -w- ,相减为 rw- rw- r–,所以默认权限为rw- rw- —
  • 777 换算成换算成字母为 rwx rwx rwx ,002换算成字母为 — --- -w- ,相减为 rwx rwx r-x ,所以目录的默认的权限的为rwx rwx r-x

如果我们想修改文件或目录的默认权限,我们可以怎么做?
umask 0001 :将umask的值修改为0001,这样我们就可以间接的修改默认在的权限。
0001 转换为字母为 — --- --x 通过计算,文件默认的权限为 rw- rw- rw-,目录的默认的权限为 rwx rwx rw-.

chown

功能:修改文件的拥有者
格式:chown 用户名 文件名
当然,我们修改文件的拥有者还需要经过对方的同意,才能成功修改文件的拥有者
或者超级用户可以直接修改文件的拥有者,或者普通用户短暂提升超级用户的权限也可以直接修改文件的拥有者,不需要对方的同意。
例如:
将dir2目录的拥有者由root改为sjp。

sudo +指令:短暂使用root权限。 使用sudo指令需要进行设置,下面会讲

chgrp

功能:修改文件的所属组
格式:chgrp 【选项】 用户组名 文件
常用选项:-R 递归修改文件的所属组
当然,我们修改文件的所属组还需要经过对方的同意,才能成功修改文件的所属组
或者超级用户可以直接修改文件的所属组,或者普通用户短暂提升超级用户的权限也可以直接修改文件的所属组,不需要对方的同意。
例如:
将test.c文件的所属组由root改为sjp。

4.Linux 授予普通用户root权限方法

直接进入**/etc/sudoers** 文件,然后找到99行,只有root或者授予普通用户root权限才能进入这个文件。
怎样显示行号?我们进去按shift+;进入底行模式,然后在底行输入 set nu 即可

然后把你想要拥有root权限的用户在添加一行即可。例如我的普通用户是sjp,那么我们直接在root下面添加一行即可。
按Esc退出底行模式,在按i进入文本编辑模式,即可修改文本。


最后在按Esc退出文本编辑模式,按shift+;进入底行模式。然后输入wq!,保存文本并退出就行。这时候该普通用户才能用sudo指令。

5.粘滞位

可执行权限:如果目录没有可执行权限,则无法进入目录。
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容.
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件.

假设有两个小组,组A和组B,他们需要共同完成一个项目,所以项目管理者就创建一个目录,让两个组的成员的能够在这个目录下创建文件并写代码,项目管理者给这个目录设置其他人可读可写可执行的权限。此时张三和李四是分别是组A和组B的成员,他们两个都在这个目录下创建了各属于自己的文件并写代码。有一天,李四看到暗恋已久的如花跟张三一起出去吃饭,并且有说有笑,李四心里很不好受,李四很一直很嫉妒张三,因为张三又高又帅,而且能力又强,领导更是对张三赞不绝口,此时看到女神跟张三一起出去吃饭。李四忍无可忍,便把该目录张三的所有文件给删除掉了。因为该目录设置其他人的权限是可写的,所以李四可以在该目录下删除张三的文件。张三写了30多天的代码就这样被李四给毁掉了,此时我们应该避免张三的文件被李四给毁掉呢,如果说我们只要对给其他人的可写的权限给去掉就可以,那么小组就不能在该目录下创建文件了,粘滞位就可以很好解决同一个目录下文件被别人删的情况

设置粘滞位之后,允许用户在目录中任意的写入、删除文件,但是禁止删除其他人的文件。

  • chmod +t test 给test设置粘滞位,使用ls命令查看其属性时,其他用户权限处的“x”将变为“t”
  • 注意粘滞位只能修饰目录 ,文件不能设置粘滞位
  • 目录设置粘滞位后,可以删除目录下的文件的用户:
    • a.超级用户root
    • b. 文件的所有者
    • c. 目录的所有者

设置粘滞位后的目录,则李四就不能删除张三的文件,这样就阻止了李四犯傻事。


点个赞呗~ 谢谢大佬们!!!

完!

linux学习笔记之linux相关知识

...、总结、coding……】。这不但可以扩展知识面,对后续的学习也有一定的帮助。1、操作系统    ​​操作系统​​​(​​OperatingSystem​​​,简称OS)是管理和控制​​计算机​​​​硬件​​​与​​软件​​... 查看详情

linux内存从0到1学习笔记(6.8,物理内存初始化之buddy伙伴系统)

写在前面在linux启动的那一刻,内存管理就已经开始了。在内核中,实现物理内存管理的allocator包括:初始化阶段物理内存管理memblock连续物理内存管理buddy非连续物理内存管理vmallocallocator小块物理内存管理slaballocator在系统初始... 查看详情

[linux之权限管理⽤户组管理](代码片段)

[Linux之权限管理⽤户组管理]权限管理用户组管理RBAC权限管理RBAC(Role-BasedAccessControl,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成... 查看详情

linux权限管理之进程掩码

...码maskumask========================================================文件权限管理之:进程umask进程新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限shell(vim,touch)=======umask======>新文件或目录权限vsftpd=======umask======& 查看详情

前后端分离学习笔记--[权限分配案例](代码片段)

权限分配这块,其实在之前学习spring时,就已经作为案例练习过了;不过当时没有整理;最近学习springboot和vue部分这块儿也是可以搭建这个案例根据权限类型为不同的管理员生成不同的操作菜单不同的管理员登录到系统后台后,仅能看... 查看详情

项目管理学习笔记之四.风险管理

项目管理个人能力--风险管理下图是一个风险管理的示意表格部分。绿色表示小。红色表示严重。?1.1风险管理的特点能够用十个字,五个词来概括风险管理的要点:规划(planning)识别(identify)分析(analysis)应对(response)监... 查看详情

linux之用户权限管理

  chmod(更改目录或文件权限)在linux中,文件的权限分为3中,拥有者,群组,其他人。而chmod则是对权限更改的命令。u表示该文件的拥有者,g表示与该文件的拥有者属于同一个组,o表示其他以外的人,a表示这三者皆是... 查看详情

linux学习笔记之yum

一、yum基本命令yumupdate 升级系统yuminstall ~安装指定软件包yumupdate~升级指定软件包yumremove~卸载指定软件yumgrouplist  查看系统中已经安装的和可用的软件组,可用的可以安装yumgrooupinstall~安装上一个命令显示的... 查看详情

linux学习笔记(代码片段)

linux学习笔记1.操作系统的发展史1.2Unix1.2Minix1.3Minix1.4Minix没有火起来的原因2.linux介绍2.1Linux内核版本2.2Linux发行版本2.3Linux目录结构2.4用户目录3.命令行的基本用法3.1命令的使用方式3.2查看帮助文档3.3tab自动补全3.4history游览历史3.5... 查看详情

学习linux须知1.1之linux属性权限,以及解决你没有权限操作此文件

一、了解基本属性(权限)Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。Linux命令ls列出... 查看详情

linux命令之——权限管理命令

linux命令之——权限管理命令权限管理命令:chmod    英文名称:chmod    命令英文原意:changethepermissionsmodeofafile    命令所在路径:/bin/chmod    执行权限:所有用户    语法:chmod【{ugoa}{+-=}{rwx}】... 查看详情

linux笔记03:linux常用命令_3.5权限管理命令(代码片段)

文件权限位共10位(如:-rw-r--r--),第1位是文件类型,第2~4、5~7、8~10位分别是文件所有者、所属组、其他人的权限;chmod命令用来修改权限;chown命令用来修改文件和目录的所有者和所属组;chgrp命令用来修改文件和目录的所属... 查看详情

二lwip学习笔记之网络接口管理

一、引言  LWIP分为四个层次:链路层、网络层、传输层和应用层。运行LWIP的嵌入式设备可以有多个网络接口:以太网接口、串行链路接口、环回接口等。为了实现对所有网络接口的有效管理,协议栈内部使用了一个名为netif... 查看详情

linux权限管理之基本权限

 基本权限UGO========================================================文件权限设置:可以赋于某个用户或组能够以何种方式访问某个文件文件权限管理之:UGO设置基本权限(r、w、x)rw-r--r--alicehrinstall.log权限对象:属主: u属组: g其他人:o... 查看详情

linux系统之高级用户组和权限管理(代码片段)

Linux系统之高级用户组和权限管理一、用户的密码策略设置1.用户的密码文件2.用户的密码期限配置①查看用户密码期限②修改密码期限③强制用户下一次修改密码④用户到期时间设置3.查看当前用户存在二、监控系统用户登录1.... 查看详情

linux权限管理之文件属性

 文件属性chattr========================================================文件权限管理之:文件属性注:设置文件属性(权限),针对所有用户,包括root[[email protected]~]#touchfile100file200file300[[email protected]~]#lsattrfile10 查看详情

《现代操作系统》学习笔记之存储管理之地址空间

内存定位技术  内存定位有三种方式:绝对地址、静态重定位和动态重定位。  绝对地址:  使用绝对地址是最简单的定位方式。例如在一个程序中,执行JMP28就会跳转到内存的28号存储单元。无论程序在内存中的什么位... 查看详情

linux学习笔记之基本操作汇总

Linux学习笔记之基本操作汇总图片放大了再看才清楚!!!!Linuxcdocd/rootpackageocd/userocd…/ocd~homeocd-lsolsols-aincludingthehiddenfilesols-lmoremessagemkdiromkdirnameomkdir/user/namermormfi 查看详情