Linux 权限

1. Linux权限的概念

(1). root与普通用户

Linux下有两种用户:超级用户(root),普通用户

超级用户:拥有最高的权限可以在Linux系统下做任何事,不受限制

普通用户:在LInux系统下做有限的事

超级用户的命令提示符是"# ",普通用户的命令提示符是"$"

权限的本质是:能或者不能做什么事情

为什么有权限呢?

为了控制用户行为,防止错误的发生

(2). 创建与删除普通用户

使用root账号具有一定风险,其权限太大,可能会因为误操作而造成不可挽回的结果,所以我们最好创建一个普通用户的账号平时使用。我们可以使用adduser来创建一个新的普通用户

我们需要root权限来执行这些命令。

bash 复制代码
adduser godpc

上面的godpc是要创建的新用户的用户名。执行此命令后,系统将提示你输入密码然后确认新用户的密码,还有一些选择性填写的信息;例如全名,电话等,可以不填

(3). 普通用户与root的切换

我们平时推荐使用普通用户,但是有些指令需要root用户的权限,这时候我们就可以切换用户了

命令:

su 用户名

功能:

切换用户

从root用户切换到普通用户不需要密码,直接就可以切换

从普通用户切换到root用户则需要输入密码,切换到当前目录下

而使用 su -

则相当于重新登陆

切换用户后,想切回上次的用户可以按Ctrl+d实现,也可以输入指令exit


如果我们不知道root的密码但是有需要root去执行某条命令,这是就可以使用sudo指令,来临时提高我们的权限,即 让root用户执行,但是使用sudo需要root用户将我们当前的普通用户添加到可信任白名单中。

操作如下

bash 复制代码
## Allow root to run any commands anywhere  
root    ALL=(ALL:ALL) ALL
要添加到白名单的用户名    ALL=(ALL:ALL) ALL

然后就可以啦

2. Linux的权限管理

(1). 文件访问者的分类(人)

权限限制的是人(角色)

权限要求目标必须具备对应的属性->权限=角色+目标属性

角色分为

  1. 拥有者:文件和文件目录的所有者:u---User

  2. 所属组:文件和文件目录的所有者所在的组的用户:g---Group

  3. other:其它用户:o---Others

没有other是因为other一般都会存在多个,所有除了拥有者和所属组之外的都叫other。

(2). 文件类型和访问权限(事务属性)

开头一个字符是文件类型,文件类型如下

    • :普通文件普通文件(指不包含有文件系统信息的结构信息的文件,是用户所接触到的文件,比如常见的.exe,.c,.txt等,归档文件等在Linux中统称为普通文件)。
  1. d :目录(文件夹)。

  2. l :软链接(类似Windows的快捷方式)文件。

  3. b :块设备文件(例如硬盘,光驱等)。

  4. p :管道文件。

  5. s :套接字文件。

  6. c :字符设备文件(例如屏幕等串口设备)。

后面九个字符三三一组

前面三个代表 文件拥有者的权限

中间三个代表 文件所属组的权限

后面三个代表 其他用户的权限

访问权限可以分为:可读(r ),可写(w ),可执行(x)

字符表示法

Linux表示 说明
r - - 仅可读
- w - 仅可写
- - x 仅可执行
r w - 可读可写
r - x 可读可执行
- w x 可写可执行
r w x 可读可写可执行
- - - 无权限

还有八进制数值表示方法

权限符号(读,写,执行) 八进制 二进制 说明
r - - 4 100 仅可读
- w - 2 010 仅可写
- - x 1 001 仅可执行
r w - 6 110 可读可写
r - x 5 101 可读可执行
- w x 3 011 可写可执行
r w x 7 111 可读可写可执行
- - - 0 000 无权限
(3). 文件访问权限的相关设置方法

chmod

功能:设置文件的访问权限

格式:chmod 参数 权限 文件名

常用选项

  • R -> 递归修改目录文件的权限
  • 说明:只有文件拥有者和root才可以改变文件的权限

① 使用方法1:用户表示符+/-=权限字符

    • :向权限范围增加权限代号所表示的权限
    • :向权限范围取消权限代号所表示的权限
  • = :向权限范围赋予权限代号所代表的权限

用户符号:

  • u :拥有者
  • g:所属组
  • o:other其他用户
  • a:所有用户

给其他用户添加权限

给其他用户删除权限

给其他用户赋予w权限

给多个用户改变权限时要用逗号隔开

②使用方法2:三位八进制数字

一个八进制数字就是三个二进制数字


chown

功能:修改文件的拥有者

格式:chown 参数 用户名 文件名

常用选项:

-R 递归修改目录文件的拥有者。

可以看到拥有者已经变成了root了


chgrp

语法:chgrp 选项 用户名 文件名或目录名

功能:修改文件的所属组。

常用选项:

-R 递归修改目录文件的所属组


可以使用chown指令来同时改变拥有者与所属组,中间用冒号隔开

以上指令都需要root权限

(4). 文件掩码

umask

功能:

查看或修改文件掩码

新建文件夹默认权限为0666(rw- rw- rw-),新建目录的默认权限为0777(rwx rwx rwx),但实际上我们所创建的目录或文件,看到的权限往往不是上面的值,是为什么呢?

原因就是创建文件或目录的时候还要收到umask的影响。假设默认权限时mask,则实际创建出来的文件权限是:mask & ~umask

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可立即产生建立文件时的预设权限。超级用户默认掩码值为0022,普通用户为0002

可以通过这个指令umask 八进制数 来修改默认的掩码 umask:

新创建出来的默认权限与之前不同了

(5). 权限的作用

可执行权限:如果目录没有可执行权限,则无法cd到目录中。

可读权限:如果目录没有可读权限,则无法使用ls等命令来查看目录中的文件内容。

可写权限:如果目录中没有可写权限,则无法在目录中创建文件。也无法在目录中删除文件。

这样就引出了一个问题:只要用户具有目录的写权限,用户就可以删除目录中的文件,而这显然是不合理的,我创建的文件为什么别人想删就删呢?

为了解决这个问题Linux引入了粘滞位的概念

(6). 粘滞位

为目录添加粘滞位很简单,只需要输入指令 chmod +t 目录名 。

在为目录添加了粘滞位后,该文件就只能由 root用户或者该目录或文件的拥有者来进行删除。


这篇文章就到这里啦ヾ( ̄▽ ̄)Bye~Bye~

祝大家国庆节快乐!!!(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤

相关推荐
Waay2 小时前
Linux Shell 知识点考评(一):grep 文本搜索(附答案)
linux·运维·服务器
jamon_tan2 小时前
Linux下串口RAW模式设置
linux
碧海银沙音频科技研究院2 小时前
基于VMware虚拟机ubuntu开发博通BK7258方法
linux·运维·ubuntu
云边有个稻草人5 小时前
【Linux系统】进程地址空间
linux·虚拟地址空间·进程地址空间·虚拟地址空间是怎么实现的?·为什么要有虚拟地址空间?·怎么理解虚拟地址空间?
weixin_514253185 小时前
511-qwen3.5-patch
服务器
谁似人间西林客7 小时前
工厂大脑如何让汽车制造告别“救火式”运维?
运维·汽车·制造
飞飞传输7 小时前
数字化科研提速关键 构建安全可控一体化跨网数据传输体系
大数据·运维·安全
wanhengidc7 小时前
服务器中带宽的重要性
运维·服务器·网络·安全·web安全
189228048618 小时前
H27QCG8T2ELR-BCF海力士H27QCG8UDBIR-BCB
大数据·服务器·人工智能·科技·缓存
云游牧者8 小时前
K8S故障排查三板斧-CSDN博客
运维·docker·云原生·kubernetes·k8s·容器化·故障排查