【shell与权限管理】

文章目录

  • 一、shell命令以及运行原理
  • 二、权限管理
    • 1.linux下有两种用户
    • 2.文件访问者的分类
    • 3.文件类型
    • 4.基本权限
    • 5.权限表示方法
    • 6.权限修改
    • 7.粘滞位
    • 8.修改文件拥有者和所属组
    • 9.umask
    • 10.sudo(暂时提权)
  • 总结


一、shell命令以及运行原理

我经常所说的linux操作系统,其实不完全正确,linux其实是一个操作系统内核(kernel),而作为普通用户我们不能直接访问kernel,因为kernel可以为我们工作,但是我们不是kernel的设计者,不懂得kernel的运作机制,很容易误操作或者不会操作。所以我们需要一个中间者让我们和kernel建立联系。那就是shell。
shell作用:
1.将用户命令翻译给kernel,让kernel执行。
2.将kernel执行命令后的结果反馈给用户。
其实shell就像翻译
【shell与权限管理】_第1张图片

我们现在所使用的Windows的GUI图形化用户界面,其实与shell起到相同的作用,不过GUI是将鼠标点击的图形的动作翻译给kernel,然后再将kernel执行后的结果图形化显示给用户。
比如点击磁盘(disk)图形进入磁盘内部。

【shell与权限管理】_第2张图片

二、权限管理

1.linux下有两种用户

超级用户
可以在linux系统下任意操作,不受限制,命令行提示符是“#”
【shell与权限管理】_第3张图片

普通用户
在linux系统下访问受限,命令行提示符是“$”
【shell与权限管理】_第4张图片

2.文件访问者的分类

计算机发展到今天,家家户户都有了计算机,计算机被用于各种各样的工作,小到在上面写个日记,大到政府部门在上面建立秘密级或者绝密级资料。既然计算机的用途很广,作用很大,已经被成体系的使用了,到现在计算机组成的网络已经成为了一个虚拟世界了,甚至它都已经成为了赚钱的工具,为了不出乱子,那么计算机就必须建立秩序,计算机上的所有信息都是用文件构成的,那么就用文件访问权限来构建秩序。
【shell与权限管理】_第5张图片

一个操作系统把拥有不同权限的人,分成三类
1.文件和文件目录拥有者(u)—user
2.文件和文件目录拥有者以外的人,其他用户(0)—other
3.与拥有者共同处理文件或文件目录的人,所属组(g)—group
【shell与权限管理】_第6张图片

3.文件类型

d:文件夹
-:普通文件
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件

c:字符设备文件(例如屏幕等串口设备)
s:套接口文件

4.基本权限

权限 普通文件 目录
r 读内容权限 查看目录信息权限
w 修改文件内容权限 创建删除文件或目录权限
x 对于可执行文件有执行权限 进入目录的权限

注意:这些权限信息是固定位置不变的
【shell与权限管理】_第7张图片

5.权限表示方法

标识符 八进制表示方法 普通文件 / 目录权限
r 4 读取信息 / 查看目录信息
w 2 修改文件内容 / 创建删除文件以及目录
x 1 对于可执行文件可执行 / 进入目录
rw 6 读写 / 查看目录内容,创建修改目录以及文件
rx 5 可读,可执行 / 可查看目录信息,可进入目录
wx 3 可修改文件内容,可执行 / 创建文件以及目录,可进入目录
rwx 7 可读,写,执行 / 查看并进入目录,在目录中创建文件以及目录

6.权限修改

a)chmod

功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项:
R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
chmod
① 用户表示符+/-=权限字符
+:向权限范围增加权限代号所表示的权限
-:向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限
用户符号:
u:拥有者
g:拥有者同组用
o:其它用户
a:所有用户
【shell与权限管理】_第8张图片

7.粘滞位

那么这里出现一个问题,如果我们想在磁盘中创建一个公共文件,想要所有用户都可以在里面创建文件,但是对于别人的文件没有删除权限。如果去掉w权限,那么所有用户都会失去创建和删除文件的其权限,这里我们引申一个知识点,叫做粘滞位。
【shell与权限管理】_第9张图片
【shell与权限管理】_第10张图片

粘滞位就可以轻松解决上述问题,给这个公共目录设置粘滞位以后,这个目录的文件就只能有文件拥有者,目录创建者,超级管理员来删除了。
【shell与权限管理】_第11张图片
【shell与权限管理】_第12张图片

8.修改文件拥有者和所属组

b)chown
功能:修改文件的拥有者
格式:chown [参数] 用户名 文件名
c)chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项:-R 递归修改文件或目录的所属组
【shell与权限管理】_第13张图片

9.umask

当我们在linux上创建文件或者目录时,可以看到文件或者目录是有初始权限的,而且文件和目录的初始权限还不同。这是怎么回事?
其实linux规定的文件创建默认权限是:666,目录默认权限是:777;但是我们看到的文件初始权限是:644,目录权限是:655;那是因为文件和目录的权限还受umask文件掩码的影响
【shell与权限管理】_第14张图片
查看或修改文件掩码:umask指令
假设默认权限是mask,则实际创建的出来的文件权限是: mask & ~umask
修改mask值:umask 权限值
说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。
【shell与权限管理】_第15张图片

10.sudo(暂时提权)

上面解释了linux有两种用户,一种是root超级管理员不受权限约束,一种是普通用户受权限约束;在装应用程序,改变本来拥有者是root的文件拥有者等这些操作都是需要root才能完成的操作,如果我们管理员不想普通用户知道root的密码,还想让一个普通用户暂时拥有对一条指令提权的权限的话,那么就可以使用sudo指令对本来无法执行的指令暂时赋予执行权限。
【shell与权限管理】_第16张图片

sudo使用之前需要配置文件,将普通用户信息添加到root用户下/etc/sudoers文件的信任列表中
1.切换root用户,或者是找管理员,找到/etc/sudoers系统文件并打开
2.找到root ALL(ALL) ALL
3.下面添加 用户名 ALL=(ALL) ALL 就可以了
【shell与权限管理】_第17张图片
现在就可以使用了,
用法:sudo+指令
需要输入当前用户密码:*********
【shell与权限管理】_第18张图片


总结

本篇博客主要围绕文件,目录和用户的使用操作,介绍了linux的权限的表示方法,如何使用,怎么修改,使用到了chmod、chown、chgrp,sudo,umask,等指令。

你可能感兴趣的:(linux)