linux/sentos 是一个操作系统

广义上,linux发行版 = linux内核版本 + 外壳程序(狭义上不包括)

外壳程序:shell、bash 对应windows系统下的gui,实质是图形界面

由于我们不能直接使用操作系统去操作,成本和权限问题存在


一、shell

1. shell概念

命令行解释器,将使用者命令翻译给kernel去处理,处理完把结果翻译回来

而sentos里面使用的是bash

对于非法请求,shell是有去权利进行拒绝的:

  • 传递请求指令,让0S执行命令(这个过程shell会创建子进程去完成,这样就出现什么风险或者问题不会影响到shell

  • 保护内核


2. 进程

程序运行起来是进程,shell本身也是一个进程

  • ps axj 可以查看进程 后可跟 | grep bash

image-20220227100435773

我的服务器只有我一个人登录


二、用户

1. 用户分类

linux中默认有两类用户

  • 超级用户:可以再linux系统下做任何事情,不受限制

  • 普通用户:在linux下做受限制,adduser创建的用户


2. 用户切换

  • 普通->超级用户: su -

    需要输入密码

  • root->普通用户: su - 用户名

    无需输入密码

改密码

在当前用户下修改

passwd

如果是root

passwd username

后面跟用户名

  • exit or CTRL + D 可以退出普通用户身份到root
  • 每次使用su都会创建一个进程,尽量减少使用su跳转到root

三、权限

1. 临时权限提升

sodo 

以root身份执行后面的语句,但也需要有权利……

image-20220227103427247

需要加添信任关系


2. 权限的属性

用户 + 文件权限属性

文件权限:读,写,执行

3. linux中角色类别

  • 拥有者 owner
  • 所属组 group
  • 其他 other

image-20220227104333446


4. 第一列文件属性

linux不以文件后缀区分文件类型

image-20220227105256065

  • 一共十个字符
  • 第一个字符,表示文件类型

d:文件夹

-:普通文件(文本,动静态库,可执行程序,源程序)

l:软链接(类似Windows的快捷方式)

b:块设备文件(例如硬盘、光驱等)

image-20220227110611961

p:管道文件 (通信)

image-20220227110809545

c:字符设备文件(例如屏幕等串口设备、鼠标键盘)

image-20220227110335421

s:套接口文件(软链接)

image-20220227111024871


磁盘大小

image-20220227110843669


linux下所有的东西都是文件,但gcc或者其他的编译器只会识别文件类型,它是处于操作系统之上的东西


  • 剩下9个字符
  • 3 + 3 + 3 为一组

image-20220227111608067

  • 拥有者 所属组 其他人 所具有的文件权限属性
  • rwx必须按顺序,可读 可写 可执行
  • -为否

四、修改权限

1. 修改文件权限

  • chmod u(拥有者)/g(所属组)/o(其他人)/a(所有人)+/- r/w/x 文件名
  • 多组修改可以使用逗号隔开u+r,g+w

image-20220227171825662

root是几乎不受权限约束,除非root给自己添加权限


2. 修改文件所属

  • chown/grp 组名 文件名

image-20220227193158393

但会发现根本不同意

因为需要root的权限

  • sudo chowngrp 组名 文件名

image-20220227202220736


  • chown 个人名:组名 文件名

进入目录是修改x,进入目录也是个程序,因为进入,需要把下一级的地址给上一级(类似二叉树一样)


3. 修改文件权限八进制

chmod 777 文件名

7 7 7 八进制 111 111 111 rwxrwxrwx

image-20220227214417195


4. 粘滞位

  • 如果目录本身对other具有w权限,other可以删掉任何的目录下的文件
  • 如果目录本身对other没有w权限,other不可以删掉任何文件

image-20220228112625081

image-20220228112808078

但如果想要别人可以在自己的组或个人当中创建文件,但不可以删除除他自己创建文件以外其他人的文件

  • chmod o+t 目录 此时还要保证other那w权限是开放的,不然还是删不了

image-20220228113116429

只能对目录设置,一般是限制other权限的,设置了粘滞位的目录,只能文件的拥有者才可以删除文件

当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由

  • 超级管理员删除
  • 该目录的所有者删除
  • 该文件的所有者删除

image-20220228113219764


五、linux默认权限设置

1. 默认权限

  • 普通文件 起始权限 6 6 6

  • 目录文件 起始权限 7 7 7

但我们看到的不是这样

image-20220228140631426


2. 权限掩码

  • umask

image-20220228140645435

  • 什么是掩码

子网掩码等等……不过还没学网络……

大概就是

1111 想将 1 都变为0 通过

1111 & 0000 = 0000 来过滤掉 1 这个数字

但仅仅用且或者异或是不行的

思路转换为去掉当中特定的1

= 起始权限数 & ~(umask)

  • 自定义默认权限

unmask 数字 但仅仅在本次登录有效


Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐