权限的理解

一.shell外壳程序

Linux系统,用户通过指令操作,来进行使用和操作计算机。

指令操作并不是直接对Linux内核(kernel)系统进行的,而是和系统提供的外壳程序进行的交互。

用户不直接对操作系统进行操作,主要还是因为:1.学习成本太高 2.操作失误可能导致计算机瘫痪

在这里插入图片描述

外壳程序:是用户和操作系统交互间的软件层,在一定程度可以起到保护操作系统的作用

a. 将使用者的命令翻译给核心(kernel)处理

b.同时,将核心的处理结果翻译给使用者。

在这里插入图片描述

Linux常见的外壳程序有:bash 、csh 、tcsh 等,但是大多数Linux系统默认的是Bash
在这里插入图片描述
echo $0可以查看外壳程序。

bash作为可执行程序,是一个死循环,循环输出[ ]$ ,然后接收用户的输入。

二.用户

1.Linux的用户

  • root:

    超级用户,可以在Linux系统下做任何事情,基本不受限制。类似于管理员的身份

  • 普通用户

    可以有多个,并且受到权限的约束

2. 用户切换

  • 命令su [用户名]

在这里插入图片描述

root用户的命令提示符为#

普通用户的命令提示符为$

输入logoutexit 或 按快捷键ctrl+d,可以退出登陆

三.权限

1.概念

linux下一切皆文件,不同的用户对于文件的操作权限也不同。对文件基本属性设置,来限制不同用户对于该文件可执行的操作就是权限管理。

2. 用户划分

  • 所有者(owner): 该文件属于哪个用户
  • 所属组(group): 该文件属于哪个组,对于该组的所有用户
  • 其他(other): 不属于上述两种的其他用户

3. 文件属性

使用ll或者ls -l可以显示文件的属性

在这里插入图片描述

在这里插入图片描述

进入目录,是需要其x(可执行)权限。

  • 文件属性:

d:表示目录

-:表示普通文件

l:表示连接文档

……

  • 权限:

以三个为一组,且均为rwx的参数组合,

如果没有某项权限,则用-表示

r:表示可读(read)

w:表示可写(write)

x:表示可执行(execute)


四.其他

1. linux系统不以文件后缀来区分文件类型

在这里插入图片描述

后缀可以给用户来进行标识、某些软件需要识别后缀(比如:gcc编译器,会识别后缀.c文件)


2. sudo

  • sudo:将操作以root权限执行

如果普通用户想执行sudo,需要该用户在信任列表中才行。

即需要以root的身份,在/etc/sudoers文件中进行写入

在这里插入图片描述
在这里插入图片描述
写入:用户名字符串 ALL=(ALL) ALL

语法:sudo 命令
在这里插入图片描述

当执行sudo ls /root | grep test.txt会出现Permission denied的报错

tips:sudo与重定向


3. root不受权限约束

示例:(如下图)对于所有者、所属组和其他都没有读、写、执行权限的hello.c文件
在这里插入图片描述


五.权限管理

  • 文件的所有者有修改权限的权利

1. 修改所有者或所属组

修改文件的所有者所属组需要root的权限

  1. 切换到root超级用户下进行操作

  2. 使用命令:sudo + 命令,表示命令是在root权限下执行的

  • chgrp:更改文件所属组

语法:chgrp [-R] 所属组名 文件名

-R:递归更改所属组 如果是更改目录时,对该目录下所有文件都执行该操作

在这里插入图片描述

  • chown:更改文件拥有者,也可同时更改所属组

语法:chown [-R] 所有者名 文件名或``chown [-R] 所有者名:所组组名 文件名`
在这里插入图片描述


2. 修改rwx权限

文件的基本权限属性有9个,分别是user/group/other三种身份各自的rwx权限

chomd:修改文件9个权限

语法:chomd [-R] 权限 文件名

  • 符号类型改变权限

a:全部 u:所有者 g:所属组 o:其他

+:增加 -:除去 =:设置

r:读 w:写 x:执行

在这里插入图片描述

  • 八进制修改
权限符号2进制八进制
rwx1117
rx-1106
r–1005
……
rwx rw- r–111 110 100765
r-- r-- r–100 100 100444

在这里插入图片描述


3. 系统默认权限

可以发现,我们自己创建的文件,系统会帮我们生成9个权限属性,那么系统是如何做到的呢?

  • 新建目录的默认权限:777 (rwx rwx rwx)
  • 新建普通文件的默认权限:666 (rw- rw- rw-,去除可执行权限)
  • 权限掩码umask:用来限定新建文件的权限默认值(和chmod相反)

umask命令:查看/修改目前用户的权限掩码
在这里插入图片描述
权限掩码:0002。第1位表示特殊权限,后3位对应u g o。

生成的权限=默认权限 - umask

( 位运算:默认权限 & (~umask) )
在这里插入图片描述

根据权限掩码:002

生成目录的权限:777(rwx rwx rwx) - 002(— — -w-) = 775(rwx rwx r-x)

生成普通文件:666(rw- rw- rw-)- 002(— — -w-) = 664(rw- rw- r–)

  • 设置权限掩码

语法:umak 0xxx
在这里插入图片描述


4. 粘滞位

对于目录权限

r:可读(如 ll Dir/,读取Dir文件的文件信息)

w:可写 (如 touch Dir/file,在目录下创建一个文件)

x:可执行(如cd Dir/,进入目录)

因此对于对文件的删除操作,需要的是文件所在目录对该用户的w权限

因此可能会遇到如下场景:

​ 对于多个用户共同使用的项目目录下, 每个用户有该目录的w权限(可以创建文件),但是同样也可以随意删除目录下文件或空目录(非空目录则又需要其目录的w权限)。

粘滞位:只能对目录设置。设置后,在该目录中,只有文件的所有者(和root)才可以删除或移动文件。
在这里插入图片描述

在Linux系统中的临时文件/tmp,其权限rwxrwxrwt,许所有用户在目录中创建文件。其末尾的t符号表示粘滞位:允许各用户在目录中创建、删除直接的文件,但是禁止删除其他用户的数据。

粘滞位权限是针对其他用户(other)设置的

在这里插入图片描述

🦀🦀观看~

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值