Linux权限理解

发布时间 - 2025-07-21 00:00:00    点击率:

本文主要介绍linux系统中的权限管理和用户切换机制。权限是限制用户操作的关键,理解和正确使用权限有助于维护系统安全。

前言

本节主要讲解Linux的权限管理。权限是控制用户行为的机制,例如,你可以在力扣上刷题,但不能听音乐,这是由平台的权限设置决定的。如果你是VIP用户,你可以在QQ音乐上听任何音乐,而普通用户只能听非VIP的音乐。

概述

Linux系统中有两种类型的用户:

  • 超级用户(root):可以在Linux系统中执行任何操作,不受限制。
  • 普通用户:在Linux系统中只能执行有限的操作。

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

用户切换

用户之间可以通过以下命令进行切换:

  • 命令:su [用户名]
  • 功能:切换到指定用户。

root用户切换到普通用户user,使用su user。从普通用户user切换到root用户,使用susu root,此时需要输入root用户的密码。

示例:超级用户切换到普通用户

root用户切换到普通用户gwj

[root@iZf8zhv7mi2thjdxsptkb8Z ~]# su gwj
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ whoami
gwj
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$

示例:普通用户切换到超级用户

从普通用户gwj切换到root用户,直接使用su,并输入root用户的密码:

[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ su
Password: 
[root@iZf8zhv7mi2thjdxsptkb8Z ~]# whoami
root
[root@iZf8zhv7mi2thjdxsptkb8Z ~]#

另一种切换方式

除了su命令,还可以使用su -命令。两者的区别在于,前者仅切换用户身份,不改变当前路径,而后者会切换到root用户的家目录。

使用sudo提升权限

普通用户可以通过sudo + 命令来临时提升权限,输入的是普通用户的密码:

[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ whoami
gwj
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$ sudo whoami
[sudo] password for gwj: 
gwj is not in the sudoers file.  This incident will be reported.
[gwj@iZf8zhv7mi2thjdxsptkb8Z root]$

初次使用sudo时会有如下提示:

Linux权限的理解

权限是角色与事物属性的结合。例如,某人有QQ音乐的会员身份,可以听会员专享的音乐,这是因为他有会员身份,而不是因为他叫什么名字。

因此,权限 = 角色 + 事物的属性。

Linux权限管理

文件访问者分为:

  • 文件和目录的所有者(u - User)
  • 文件和目录的所有者所在组的用户(g - Group)
  • 其他用户(o - Others)

文件属性可以通过ls -l命令查看,属性从第二个字母开始,三个为一组。

权限字符表示:

  • r:可读
  • w:可写
  • x:可执行
  • -:不具备该权限

权限值:

  • 读(r/4):对文件可读取内容,对目录可浏览信息。
  • 写(w/2):对文件可修改内容,对目录可删除或移动文件。
  • 执行(x/1):对文件可执行,对目录可进入。

文件权限值表示方法:

  • 字符表示法:

  • 8进制数值表示法:

文件类型:

  • d:文件夹
  • -:普通文件
  • l:软链接
  • b:块设备文件
  • p:管道文件
  • c:字符设备文件
  • s:套接口文件

在Linux中讨论权限时,首先要确定当前用户是谁,然后查看文件的拥有者和所属组,判断当前用户的身份,最后查看该身份下的权限。权限与身份和文件属性相关。

权限修改

使用chmod命令可以设置文件的访问权限:

  • 格式:chmod [参数] 权限 文件名
  • 常用选项:R - 递归修改目录文件的权限

只有文件的拥有者和root用户可以改变文件的权限。

示例:对text.txt文件进行权限修改

初始权限:

-rw-rw-r-- 1 gwj gwj    0 Dec 10 15:02 text.txt

给拥有者添加执行权限:

chmod u+x text.txt

从所属组删除写权限:

chmod g-w text.txt

从拥有者删除执行权限,给所属组添加写权限,给其他人添加写和执行权限:

chmod u-x,g+w,o+w,o+x text.txt

给所有用户添加读、写、执行权限:

chmod a+rwx text.txt

使用8进制数值修改权限:

chmod 777 text.txt

chown命令

用于修改文件的拥有者:

  • 格式:chown [参数] 用户名 文件名

示例:

chown nanqiao text.txt

同时修改文件的拥有者和所属组:

chown gwj:nanqiao text.txt

chgrp命令

用于修改文件或目录的所属组:

  • 格式:chgrp [参数] 用户组名 文件名
  • 常用选项:-R - 递归修改文件或目录的所属组

示例:

chgrp gwj text.txt

umask命令

用于查看或修改文件掩码:

  • 新建文件的默认权限为0666
  • 新建目录的默认权限为0777

实际创建的文件和目录权限会受到umask的影响:

  • 实际权限 = 起始权限 & (~umask)

格式:

umask 权限值

超级用户默认掩码值为0022,普通用户默认为0002

普通用户创建的文件默认权限为664,目录为775

通过umask查看掩码:

掩码会影响初始权限,凡是在权限掩码中出现的权限,不会出现在最终文件权限中:

666 -> 110 110 110
002 -> 000 000 010
~umask:     111 111 101
666 -> 110 110 110
111 111 101
按位与&
110 110 100 -> 664

file命令

用于辨识文件类型:

  • 语法:file [选项] 文件或目录...
  • 常用选项:
    • -c:详细显示指令执行过程
    • -z:尝试解读压缩文件的内容

使用sudo分配权限

  1. 修改/etc/sudoers文件分配权限:
chmod 740 /etc/sudoers
vi /etc/sudoers

格式:接受权限的用户登陆的主机 =(执行命令的用户) 命令

  1. 使用sudo调用授权的命令:
sudo –u 用户名 命令

目录权限

  • 可执行权限:没有可执行权限无法进入目录。
  • 可读权限:没有可读权限无法查看目录中的文件内容。
  • 可写权限:没有可写权限无法在目录中创建或删除文件。

注意:只要用户具有目录的写权限,就可以删除目录中的文件,无论是否有该文件的写权限。因此引入了粘滞位的概念。

粘滞位

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

  1. 超级管理员删除
  2. 该目录的所有者删除
  3. 该文件的所有者删除


# linux  # qq  # 会员  # 区别  # 递归  # 接口  # 普通用户  # 切换到  # 掩码  # 可执行  # 可以通过  # 你可以  # 该文件  # 目录中  # 的是 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: php结合redis实现高并发下的抢购、秒杀功能的实例  如何在云主机上快速搭建网站?  如何获取PHP WAP自助建站系统源码?  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  打开php文件提示内存不足_怎么调整php内存限制【解决方案】  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何在万网开始建站?分步指南解析  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  Laravel如何配置任务调度?(Cron Job示例)  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  网站制作价目表怎么做,珍爱网婚介费用多少?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  canvas 画布在主流浏览器中的尺寸限制详细介绍  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Python数据仓库与ETL构建实战_Airflow调度流程详解  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  英语简历制作免费网站推荐,如何将简历翻译成英文?  Claude怎样写结构化提示词_Claude结构化提示词写法【教程】  网页设计与网站制作内容,怎样注册网站?  如何快速搭建安全的FTP站点?  详解jQuery停止动画——stop()方法的使用  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  javascript读取文本节点方法小结  Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何实现建站之星域名转发设置?  Laravel如何使用Gate和Policy进行授权?(权限控制)  如何快速搭建支持数据库操作的智能建站平台?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  详解CentOS6.5 安装 MySQL5.1.71的方法  Laravel如何处理表单验证?(Requests代码示例)  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  EditPlus中的正则表达式实战(5)  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置