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ᵒᵛᵉᵧₒᵤ❤

相关推荐
K·Herbert2 小时前
最新CentOS 7 yum源失效的解决方案(2025年6月)
linux·运维·centos
别骂我h2 小时前
部署KVM虚拟化平台
linux·运维·服务器
繢鴻2 小时前
紧急救援!Ubuntu崩溃修复大赛
linux·服务器·ubuntu
showmethetime3 小时前
优化nginx参数(基本通用参数)
运维·nginx
老六ip加速器3 小时前
获取ip地址安全吗?如何获取静态ip地址隔离ip
运维·网络·智能路由器
净心净意11 小时前
浅谈DaemonSet
运维·jenkins
Apex Predator18 小时前
jenkins流水线打包vue无权限
运维·jenkins
hujun861021 小时前
Ubuntu安装无线网卡
linux
Johny_Zhao21 小时前
CentOS Stream 8 高可用 Kuboard 部署方案
linux·网络·python·网络安全·docker·信息安全·kubernetes·云计算·shell·yum源·系统运维·kuboard
卖猪肉的痴汉1 天前
1.1 Linux 编译FFmpeg 4.4.1
linux·ffmpeg