Linux 用户和权限
一、root 用户
root 用户(超级管理员)
无论是windows、Macos、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root (超级管理员)。
root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。如:使用普通用户在根目录下创建文件夹显示无法创建目录"/test": 权限不够

切换到 root 用户后。

- 普通用户的权限,一般在其HOME目录内是不受限的
- 一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
su和exit命令
我们接触过su命令切换到 root 账户 su 命令就是用于账户切换的系统命令,
其来源英文单词: Switch User
语法: su [-] [用户名]
- - 符号是可选的,表示是否在切换用户后加载环境变量建议带上参数;
- 用户名,表示要切换的用户,用户名也可以省略,省略表示切换到 root 切换用户后,可以通过 exit 命令退回上一个用户,也可以使用快捷键: ctrl + d。

使用普通用户,切换到其它用户需要输入密码,如切换到 root 用户使用 root 用户切换到其它用户,无需密码,可以直接切换。
sudo命令
我们可以通过 su 命令切换到 root 得到最大权限但是我们不建议长期使用 root 用户,避免带来系统损坏。我们可以使用 sudo 命令,为普通的命令授权,临时以 root 身份执行。
语法:sudo 其它命令
- 在其它命令之前,带上sudo,即可为这一条命令临时赋予 root 授权;
- 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置 sudo 认证。
为普通用户配置sudo认证
切换到 root 用户,执行visudo命令,会自动通过 vi 编辑器打开:/etc/sudoers。在文件的最后添加:
xiaoqing ALL=(ALL) NOPASSWD: ALL
其中最后的NOPASSWD:ALL 表示使用 sudo 命令,无需输入密码最后通过 wq保存,切换回普通用户。执行的命令,均以 root 运行 。
二、用户、用户组的管理
用户、用户组
Linux系统中可以:配置多个用户配置多个用户组用户可以加入多个用户组中。

Linux中关于权限的管控级别有2个级别,分别是:
- 针对用户的权限控制
- 针对用户组的权限控制
针对某文件,可以控制用户的权限,也可以控制用户组的权限。
用户组管理
以下命令需 root 用户执行。
- 创建用户组:groupadd 用户组名
- 删除用户组:groupdel 用户组名
用户管理
以下命令需 root 用户执行。
创建用户:useradd[-g -d] 用户名
- 选项:-g 指定用户的组,不指定-g,会创建同名组并自动加入,指定 -g 需要组已经存在,如已存在同名组,必须使用 -g;
- 选项:-d 指定用户HOME路径,不指定,HOME目录默认在:/home/用户名。
删除用户:userdel[-r] 用户名
选项:-r 删除用户的HOME目录,不使用 -r,删除用户时,HOME目录保留。
查看用户所属组:id [用户名]
参数:用户名,被查看的用户,如果不提供则查看自身修改用户所属组。
usermod-aG 用户组 用户名,将指定用户加入指定用户组
getent
使用getent命令,可以查看当前系统中有哪些用户语法: getent passwd。

共有7份信息,分别是:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)。
同样可以查看当前系统中有哪些用户组语法: getent group。

包含3份信息,组名称:组认证(显示为x):组ID。
三、查看权限控制

- 序号1表示文件、文件夹的权限控制信息;
- 序号2表示文件、文件夹所属用户;
- 序号3表示文件、文件夹所属用户组。
认知权限信息
让我们来解析一下序号1,其权限细节权限细节总共分为10个槽位
举例:drwxr-xr-x,表示:
- 这是一个文件夹,首字母 d 表示;
- 所属用户(右上角图序号2)的权限是:有 r 有 w 有 x,rwx;
- 所属用户组(右上角图序号3)的权限是:有 r 无 w 有 x,r-x (-表示无此权限);
- 其它用户的权限是:有 r 无 w 有 x,r-x。
rwx
- r表示读权限
- w表示写权限
- x表示执行权限
针对文件、文件夹的不同,rwx 的含义有细微差别。
r,针对文件可以查看文件内容;
针对文件夹,可以查看文件夹内容,如 ls 命令;
w,针对文件表示可以修改此文件;
针对文件夹,可以在文件夹内:创建、删除、改名等操作;
x,针对文件表示可以将文件作为程序执行;
针对文件夹,表示可以更改工作目录到此文件夹,即 cd 进入。
四、修改权限控制——chmod
chmod命令
我们可以使用chmod命令,修改文件、文件夹的权限信息
注意,只有文件、文件夹的所属用户或root用户可以修改。
语法: chmod [-R] 权限 文件或文件夹
选项:-R,对文件夹内的全部内容应用同样的操作
示例:
chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwxr-x--x。 其中:u 表示 user 所属用户权限,g 表示 group 组权限,o 表示 other 其它用户权限。
chmod -R u=rwx,g=rx,0=x test,将文件夹 test 以及文件夹内全部内容权限设置为: rwxr-X--X
这样写太繁琐了,可以直接 chomd 751 hello.txt
权限的数字序号
权限可以用3位数字来代表,第一位数字表示用户权限,第二位表示用户组权限,第三位表示其它用户权限。数字的细节如下:r 记为4,w 记为2,x 记为1,可以有:
- 0:无任何权限,即---;
- 1:仅有x权限,即--x;
- 2:仅有w权限即-w-;
- 3:有w和x权限即-wx;
- 4:仅有r权限即r--;
- 5:有r和x权限即r-x;
- 6:有r和w权限,即 rw-;
- 7:有全部权限即rwx。
所以751表示: rwx(7) r-x(5) --x(1)。
五、修改权限控制——chown
使用chown命令,可以修改文件、文件夹的所属用户和用户组。
普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行
语法: chown [-R] [用户][:][用户组] 文件或文件夹选项,
- -R 同 chmod,对文件夹内全部内容应用相同规则;
- 选项,用户,修改所属用户;
- 选项,用户组,修改所属用户组;
- :用于分隔用户和用户组。
示例:
- chown root hello.txt,将 hello.txt 所属用户修改为 root;
- chown :root hello.txt,将 hello.txt 所属用户组修改为 root;
- chown root:itheima hello.txt,将 hello.txt 所属用户修改为 root,用户组修改为 itheima;
- chown -R root test,将文件夹 test 的所属用户修改为 root 并对文件夹内全部内容应用同样规则。
相关文章:
Linux 用户和权限
一、root 用户 root 用户(超级管理员) 无论是windows、Macos、Linux均采用多用户的管理模式进行权限管理。在Linux系统中,拥有最大权限的账户名为:root (超级管理员)。 root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。…...
分布式应用:ELFK集群部署
目录 一、理论 1.ELFK集群 2.filebeat 3.部署ELK集群 二、实验 1. ELFK集群部署 三、总结 一、理论 1.ELFK集群 (1)概念 ELFK集群部署(FilebeatELK),ELFK ES logstashfilebeatkibana 。 数据流 架构 2.fi…...
Quartz使用文档,使用Quartz实现动态任务,Spring集成Quartz,Quartz集群部署,Quartz源码分析
文章目录 一、Quartz 基本介绍二、Quartz Java 编程1、文档2、引入依赖3、入门案例4、默认配置文件 三、Quartz 重要组件1、Quartz架构体系2、JobDetail3、Trigger(1)代码实例(2)SimpleTrigger(3)CalendarI…...
Go -- 测试 and 项目实战
没有后端基础,学起来真是费劲,所以打算速刷一下,代码跟着敲一遍,有个印象,大项目肯定也做不了了,先把该学的学了,有空就跟点单体项目,还有该看的书.... 目录 🍌单元测试…...
GitHub基本使用
GitHub搜索 直接搜索 直接搜索关键字 明确搜索仓库标题 语法:in:name [关键词]展示:比如我们想在GitHub仓库中标题中搜索带有SpringBoot关键词的,我们可以样搜: in:name SpringBoot 明确搜索描述 语法:in:description [关键词]展…...
微信小程序生成带参数的二维码base64转png显示
getQRCode() {var that this;wx.request({url: http://localhost:8080/getQRCode?ID 13,header: {content-type: application/json},method: POST,responseType: arraybuffer,//将原本按文本解析修改为arraybuffersuccess(res) {that.setData({getQRCode: wx.arrayBufferToB…...
量子计算机:下一代计算技术的奇点
介绍 量子计算机是一种基于量子力学原理的全新计算技术,它利用量子比特的特性进行计算,具有破解当前经典计算机难以解决问题的潜力。在过去几十年里,量子计算机一直是计算机科学领域的一个热门话题。本篇博客将深入探讨量子计算机的基本原理…...
【ChatGPT】ChatGPT是如何训练得到的?
前言 ChatGPT是一种基于语言模型的聊天机器人,它使用了GPT(Generative Pre-trained Transformer)的深度学习架构来生成与用户的对话。GPT是一种使用Transformer编码器和解码器的预训练模型,它已被广泛用于生成自然语言文本的各种…...
Docker设置代理、Linux系统设置代理
使用方式 新建或修改~/.docker/config.json文件,设置可用的代理地址。 {"proxies": {"default": {"httpProxy": "http://192.168.0.32:1080","httpsProxy": "http://192.168.0.32:1080","noPro…...
C# 进程
C# 进程 进程的命名空间是: using System.Diagnostics;1.获取当前计算机正在运行所有的进程 Process[] processes Process.GetProcesses(); for (int i 0; i < processes.Length; i) {Console.WriteLine(processes[i]); } Console.ReadKey();2.通过进程打开…...
SQL注入之sqlmap
SQL注入之sqlmap 6.1 SQL注入之sqlmap安装 sqlmap简介: sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MS-SQL,MYSQL,ORACLE和POSTGRESQL。SQLMAP采用四种独特的SQL注…...
Flutter 命名路由
我们可以通过创建一个新的Route,使用Navigator来导航到一个新的页面,但是如果在应用中很多地方都需要导航到同一个页面(比如在开发中,首页、推荐、分类页都可能会跳到详情页),那么就会存在很多重复的代码。…...
Stephen Wolfram:神经网络
Neural Nets 神经网络 OK, so how do our typical models for tasks like image recognition actually work? The most popular—and successful—current approach uses neural nets. Invented—in a form remarkably close to their use today—in the 1940s, neural nets …...
RBF神经网络原理和matlab实现
1.案例背景 1.1 RBF神经网络概述 径向基函数(Radical Basis Function,RBF)是多维空间插值的传统技术,由Powell于1985年提出。1988年, Broomhead和 Lowe根据生物神经元具有局部响应这一特点,将 RBF引入神经网络设计中,产生了RBF神经网络。1989 年,Jackson论证了…...
Nacos 抽取公共配置
文章目录 创建一个公共配置文件其他配置文件引用springboot配置文件 创建一个公共配置文件 其他配置文件引用 ${变量} springboot配置文件 spring:cloud:nacos:discovery:server-addr: current.ip:8848namespace: word_register_proconfig:server-addr: current.ip:8848auto-r…...
Promise、Async/Await 详解
一、什么是Promise Promise是抽象异步处理对象以及对其进行各种操作的组件。Promise本身是同步的立即执行函数解决异步回调的问题, 当调用 resolve 或 reject 回调函数进行处理的时候, 是异步操作, 会先执行.then/catch等,当主栈完成后&#…...
PoseiSwap:基于 Nautilus Chain ,构建全新价值体系
在 DeFi Summer 后,以太坊自身的弊端不断凸显,而以 Layer2 的方式为其扩容成为了行业很长一段时间的叙事方向之一。虽然以太坊已经顺利的从 PoW 的 1.0 迈向了 PoS 的 2.0 时代,但以太坊创始人 Vitalik Buterin 表示, Layer2 未来…...
uC-OS2 V2.93 STM32L476 移植:串口打印篇
前言 前几篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG 的 STM32L476RG 的 裸机工程,下载了 uC-OS2 V2.93 的源码,并把 uC-OS2 的源文件加入 Keil MDK5 工程,通过适配 Systick 系统定时器与 PendSV 实现任务调度,初步让 uC-OS2 …...
代码随想录算法训练营第四十六天| 139.单词拆分 背包问题总结
代码随想录算法训练营第四十六天| 139.单词拆分 背包问题总结 一、力扣139.单词拆分 题目链接: 思路:确定dp数组,dp[i]为true表示从0到i切分的字串都在字典中出现过。 确定递推公式,dp[i] 为true要求 s[j, i] 在字典中出现&…...
【机器学习】西瓜书习题3.3Python编程实现对数几率回归
参考代码 结合自己的理解,添加注释。 代码 导入相关的库 import numpy as np import pandas as pd import matplotlib from matplotlib import pyplot as plt from sklearn import linear_model导入数据,进行数据处理和特征工程 # 1.数据处理&#x…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力
引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
Linux入门(十五)安装java安装tomcat安装dotnet安装mysql
安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了,系统很多命…...
