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

相关推荐
第六五10 分钟前
VIM简要介绍
linux·编辑器·vim
Sui_Network24 分钟前
Sui主网升级至V1.34.2
运维·服务器·物联网·架构·区块链
我的运维人生36 分钟前
PowerShell脚本在自动化Windows开发工作流程中的应用
运维·windows·自动化·运维开发·技术共享
软件质量保障1 小时前
自动化check是不是测试?
运维·自动化
wacpguo1 小时前
Vmware虚拟机-Ubuntu扩展硬盘大小
linux·ubuntu
coderWangbuer1 小时前
基于SSH的酒店管理系统的设计与实现 (含源码+sql+视频导入教程+文档+PPT)
运维·sql·ssh
小林熬夜学编程1 小时前
【Linux系统编程】第二十六弹---彻底掌握文件I/O:C/C++文件接口与Linux系统调用实践
java·linux·服务器·c语言·c++·算法
铁蛋Q1 小时前
Linux中的进程间通信
linux·运维·服务器
linux修理工2 小时前
netdata(Linux 性能实时监测工具)一键安装 for armbian
运维·服务器·数据库
weixin_430750932 小时前
防火墙的区域划分+来自公网、内网的ip欺骗攻击+防御
运维·网络·网络协议·tcp/ip·华为·安全威胁分析