Linux研学-用户解析

一 root用户

1 介绍

  root是Linux系统中唯一的超级管理员账户,拥有系统的最高权限(UID=0),可执行任何操作,包括修改系统文件、安装/卸载软件、管理用户权限等。
  如普通用户无法在根目录下创建文件,而root账户可以。

2 su 命令 – 切换当前登录用户身份

  ① 语法

# 用户名 可省略(默认切换到root)。
# 选项:
# -(或-l/--login)加载目标用户的环境变量(如.bashrc、.profile等配置文件)模拟完整登录。
# -c 以目标用户身份执行指定命令后退出(适合快速执行特权操作)。
su [选项] [用户名]

  ② 例子

su - root

3 exit 命令 – 退出当前用户

  ① 语法:退出当前用户会话,返回上一个用户或终端。

# 快捷键 Ctrl + D(发送EOF信号,效果同exit)。
# 输入logout命令(部分Shell支持)。
exit

  ② 注意:普通用户切换到其他用户(包括root)需输入目标用户密码。root用户切换到其他用户无需密码(因root拥有最高权限)。
sudo 命令详解

3 sudo 命令 – 必要时授予root权限执行单条命令

  ① 作用:允许普通用户以root权限执行单条命令,而无需切换到root用户或知道root密码。遵循最小权限原则,仅在必要时授予临时特权,降低误操作或恶意攻击的风险。
  并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证
  ② 语法:

sudo [选项] 命令 [参数]

  ③ 例子:

# 以 root 权限查看日志
sudo cat /var/log/syslog

4 配置sudo认证

  ① 步骤: 切换到 root 用户;

# - 表示加载该用户的环境变量
su - root

  ② 使用 visudo 安全编辑配置文件;

visudo

  ③ 在 /etc/sudoers 中添加用户权限,⚠️ 若需限制命令范围,可替换为具体路径,例如:dahuang ALL=(ALL) /usr/bin/ls, /usr/bin/mkdir;

# dahuang :目标用户名。
# ALL=(ALL):允许从任何主机切换为任何用户执行命令。
# NOPASSWD: ALL:执行所有命令时无需输入密码(谨慎使用)。
dahuang ALL=(ALL) NOPASSWD: ALL

  ④ 保存并退出,在 vi 编辑器中按 Esc,输入 :wq 保存并退出。;切换回普通用户验证

exit  # 退出 root 用户
su - dahuang # 切换回普通用户

  ⑤ 测试 sudo 权限,由于配置了 NOPASSWD,执行时无需输入密码。所有通过 sudo 执行的命令均以 root 权限运行。

sudo ls /root       # 以 root 权限列出 /root 目录内容
sudo mkdir /test    # 以 root 权限创建目录

二 用户与用户组

1 介绍

  用户:系统独立实体,有唯一 UID 和家目录(如 root UID=0)。
  用户组:用户集合,便于批量授权,有唯一 GID。
  关系:用户可属于多个组(主组+附加组),权限可按用户或组分配。

2 用户组管理 – 需要 root 权限

  ① 创建用户组

# root可直接使用 否则需要加上sudo
sudo groupadd [用户组名]

  ② 删除用户组

sudo groupdel [用户组名]

3 用户管理 – 需要 root 权限

  ① 创建用户

# -g 组名:指定用户的主组(需组已存在)。若不指定,默认创建与用户名同名的组并加入。
# 用户名dahuang 组名也为dahuang
# -d 家目录路径:自定义用户的家目录路径(默认:/home/用户名)。
# 使用 -m 后,系统会按默认规则创建家目录,并复制基础配置文件
sudo useradd [-g 组名] [-d 家目录路径] [-m] 用户名

  ② 删除用户

# -r:删除用户时同时删除其家目录(默认保留)。
sudo userdel [-r] 用户名

  ③ 查看用户所属组

# 不提供用户名时,默认查看当前用户所属组
id [用户名]

  ④ 修改用户所属组

# -aG:将用户追加到附加组(不覆盖原有组关系)。
sudo usermod -aG 用户组 用户名

  ⑤ 例子

# 创建用户
sudo useradd -m ppap
sudo ls
ppap
# 查看组别
su - ppap
sudo $ id
uid=1003(ppap) gid=1003(ppap) groups=1003(ppap)
# 创建ppbp入ppap组,并指定home目录
exitsudo useradd -m -g ppap -d /home/ppap ppbp
useradd: user 'ppbp' already existssudo id ppbp
uid=1004(ppbp) gid=1003(ppap) groups=1003(ppap)
# 删除用户同时删除home中文件夹
sudo userdel -r xiaohuang
# bighuang入dahuang组
sudo useradd bighuang
sudo id bighuang
uid=1006(bighuang) gid=1006(bighuang) groups=1006(bighuang)
sudo usermod -aG dahuang bighuang
sudo id bighuang
uid=1006(bighuang) gid=1006(bighuang) groups=1006(bighuang),1004(dahuang)

4 getent 命令 – 查看系统用户数据库

  ① 介绍:它会从 /etc/passwd 文件或其他配置的数据库(如 LDAP、NIS)中检索用户信息。

# 查用户
getent passwd
# 查用户组
getent group

  ② 例子

# 用户名:密码占位符:用户ID(UID):组ID(GID):描述信息:家目录:登录Shell
getent passwd
bighuang:x:1006:1006::/home/bighuang:/bin/sh# 组名称:组认证(显示为×):组ID
getent group
bighuang:x:1006:

三 权限控制

1 查看权限信息

# 文件权限信息 -rw-------.
# 文件所属用户 root (第一个)
# 文件所属用户组 root (第二个)
[root@localhost ~]# ls -l
total 4364
-rw-------. 1 root root    1203 Jul 28  2023 anaconda-ks.cfg
drwxr-xr-x. 2 root root      89 Aug 10  2023 app
drwxr-xr-x. 2 root root      92 Aug 10  2023 bin
drwxr-xr-x. 6 root root      71 Aug 25  2023 logs
-rw-r--r--  1 root root       0 Oct 24  2023 mkdir
drwxr-xr-x. 3 root root      20 Aug 25  2023 nacos
-rw-------. 1 root root 4405717 Aug 25  2023 nohup.out
drwxr-xr-x. 4 root root    4096 May 31 09:38 software
drwxr-xr-x. 6 root root     113 Aug 25  2023 store
-rw-r--r--  1 root root       0 Oct 24  2023 touch

2 权限细节的 10 个槽位解析

  在解析 Linux 文件或目录的权限时,权限细节通常由 10 个字符组成(在特定格式下,如 ls -l 的输出中),这些字符被分为几个部分,以表示文件或目录的类型、所属用户权限、所属用户组权限以及其他用户权限。

文件/目录类型(第1个字符):
-:表示这是一个普通文件。
d:表示这是一个目录。
l:表示这是一个软链接(符号链接)。
所属用户权限(接下来的3个字符):
第2个字符:r(读权限)或 -(无读权限)。
第3个字符:w(写权限)或 -(无写权限)。
第4个字符:x(执行权限)或 -(无执行权限)。
所属用户组权限(接下来的3个字符):
第5个字符:r(读权限)或 -(无读权限)。
第6个字符:w(写权限)或 -(无写权限)。
第7个字符:x(执行权限)或 -(无执行权限)。
其他用户权限(最后的3个字符):
第8个字符:r(读权限)或 -(无读权限)。
第9个字符:w(写权限)或 -(无写权限)。
第10个字符:x(执行权限)或 -(无执行权限)。

3 rwx说明

  1. r(读权限)
    文件:允许查看文件内容(如使用 cat、less)。
    目录:允许列出目录中的文件和子目录(如使用 ls)。
  2. w(写权限)
    文件:允许修改文件内容(如使用文本编辑器或命令修改)。
    目录:允许在目录中创建、删除或重命名文件和子目录(如使用 touch、mkdir、rm、mv)。
  3. x(执行权限)
    文件:允许将文件作为程序执行(如运行脚本或二进制程序)。
    目录:允许更改工作目录到该目录(即使用 cd 进入)。

4 修改权限控制 – chmod

  ① 语法:用于修改文件或目录权限

# -R 递归操作,对目录及其内部所有内容应用相同的权限修改。
chmod [-R] 权限 文件或目录

  ② 权限表示方法

符号模式
u:所属用户(user)权限。
g:所属用户组(group)权限。
o:其他用户(other)权限。
a:所有用户(all,等同于 ugo)。
操作符:
=:设置权限(覆盖原有权限)。
+:添加权限。
-:移除权限。
权限符号:
r:读权限。
w:写权限。
x:执行权限。

  ③ 例子

# 文件权限为rwxr-x--x
chmod u=rwx,g=rx,o=x hello.txt

  ④ 数字表示法,权限可以用三位八进制数表示,每一位分别对应所属用户、所属用户组和其他用户的权限。数字与权限对应:r=4,w=2,x=1,无权限=0。

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)
所属用户:有读、写和执行权限
所属用户组:无权限(此示例仅说明数字7的含义,实际中7可能用于所属用户、组或其他用户)

  ⑤ 例子:751

第一位(7):所属用户权限(rwx)
r(4) + w(2) + x(1) = 7
第二位(5):所属用户组权限(r-x)
r(4) + x(1) = 5
第三位(1):其他用户权限(--x)
x(1) = 1
最终权限:rwxr-x--x
[root@localhost games]# ls -l
-rw-r--r-- 1 root root  0 May 31 12:12 test.txt[root@localhost games]# chmod 666 test.txt 
[root@localhost games]# ls -l
-rw-rw-rw- 1 root root  0 May 31 12:12 test.txt

5 修改权限控制 – chown

  ① 语法:用于修改文件或目录的所属用户和用户组的命令,普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

# -R 递归操作,对目录及其内部所有内容应用相同的所属用户和用户组修改。
# 用户 指定新的所属用户。
# 用户组 指定新的所属用户组。
# : 用于分隔用户和用户组。
chown [-R] [用户][:用户组] 文件或目录

  ② 例子

# 修改文件所属用户
chown root hello.txt# 修改所属用户组
chown :root hello.txt# 同时修改所属用户和用户组:
chown root:dahuang hello.txt# 递归修改目录及其内容的所属用户
chown -R root test# 第一个root为用户 第二个root为用户组
[root@localhost games]# ls -l
-rw-rw-rw- 1 root root 65 May 21 12:29 hello.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/83822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式系列(07):建造者模式(Builder)

本文为设计模式系列第7篇,聚焦创建型模式中的建造者模式,涵盖定义、原理、实际业务场景、优缺点、最佳实践及详细代码示例,适合系统学习与实战应用。 目录 1. 模式概述2. 使用场景3. 优缺点分析4. 实际应用案例5. 结构与UML类图6. 代码示例7…

HBuilder 发行Android(apk包)全流程指南

一、前言 小程序以其便捷性和轻量性受到越来越多开发者的青睐。HBuilder 作为一款强大的开发工具,为小程序开发提供了极大的便利。本文将详细介绍如何通过 HBuilder 完成小程序的开发与发行。 二、环境准备 1. 安装 HBuilder 访问 DCloud 官方网站,下…

React 18新特性介绍

React 18是React团队于2022年发布的一个重要版本,它引入了多项改进和新特性,在提升性能的同时也带来了一些使用上的变化。本文将全面介绍React 18的主要新特性,包括并发渲染、API更新、浏览器兼容性等重要内容,并通过代码示例说明…

设计模式——面向对象设计六大原则

摘要 本文详细介绍了设计模式中的六大基本原则,包括单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则、依赖倒置原则和合成复用原则。每个原则都通过定义、理解、示例三个部分进行阐述,旨在帮助开发者提高代码的可维护性和灵活性。通过具体代码…

使用 So-VITS-SVC 实现明星声音克隆与视频音轨替换实战全流程

本文展示如何使用开源项目 so-vits-svc 实现声音克隆与视频音轨替换流程,适用于 AI 音频工程、声音合成等学习场景。所述内容仅限技术交流,禁止用于非法用途。 一、项目背景 此项目采用 so-vits-svc 4.1 开源框架,实现了“用明星声音替换视频…

【学习记录】深入解析 AI 交互中的五大核心概念:Prompt、Agent、MCP、Function Calling 与 Tools

📌 引言 随着大语言模型(LLM)的发展,AI 已经不再只是“回答问题”的工具,而是可以主动执行任务、调用外部资源、甚至构建完整工作流的智能系统。 为了更好地理解和使用这些能力,我们需要了解 AI 交互中几…

纹理压缩格式优化

🎯 Unity 项目纹理压缩格式优化终极指南 ——不同平台、不同手机型号,如何正确选择 🧩 什么是纹理压缩(Texture Compression)? Texture压缩 = 减小显存占用,提升加载速度,减轻GPU负担纹理是游戏中最大资源,占用50%+内存正确压缩:减少GPU Bandwidth,提高渲染性能错…

Docker轻松搭建Neo4j+APOC环境

Docker轻松搭建Neo4jAPOC环境 一、简介二、Docker部署neo4j三、Docker安装APOC插件四、删除数据库/切换数据库 一、简介 Neo4j 是一款高性能的 原生图数据库,采用 属性图模型 存储数据,支持 Cypher查询语言,适用于复杂关系数据的存储和分析。…

NGINX `ngx_stream_core_module` 模块概览

一、模块定位与功能 通用 TCP/UDP 代理 支持同时处理 TCP 和 UDP 流量,透明转发请求到后端服务器组(upstream)。可作为四层负载均衡,根据客户端 IP、权重、最少连接等策略将连接分发给后端。 预读(preread&#xff09…

JVM类加载高阶实战:从双亲委派到弹性架构的设计进化

前言 作为Java开发者,我们都知道JVM的类加载机制遵循"双亲委派"原则。但在实际开发中,特别是在金融支付、插件化架构等场景下,严格遵循这个原则反而会成为系统扩展的桎梏。本文将带你深入理解双亲委派机制的本质,并分享…

MATLAB | 绘图复刻(十九)| 轻松拿捏 Nature Communications 绘图

hello这次真的是好久不见了,前段时间确实太忙,后台都忙到没时间看,对不住大家的热情,这期复刻两个 Nature Communications 绘图,主要都和弦图有关: 原图 1 复刻图 1 原图 2 复刻图 2 这次绘图使用我自己开…

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享

设计模式(代理设计模式)

代理模式解释清楚,所以如果想对一个类进行功能上增强而又不改变原来的代码情况下,那么只需要让这个类代理类就是我们的顺丰,对吧?并行增强就可以了。具体增强什么?在哪方面增强由代理类进行决定。 代码实现就是使用代理对象代理相关的逻辑…

Flask + ECharts+MYSQL全球贸易数字化大屏

核心功能: 全球贸易热力图:展示中国与各国的贸易关系强度 贸易指标卡片:实时显示贸易总额、投资额等关键指标 贸易伙伴排名:展示中国前10大贸易伙伴 贸易类型分布:展示各类商品的贸易占比 全球实时动态:滚动显示全球贸易、投资等实时事件 技术亮点: 使用WebSocket实现实…

wpf Behaviors库实现支持多选操作进行后台绑定数据的ListView

<ListView ItemsSource"{Binding SchemeItems}" SelectionMode"Extended" VerticalAlignment"Stretch" HorizontalAlignment"Stretch"><ListView.ContextMenu><ContextMenu><MenuItem Header"删除" …

50个JAVA常见代码大全:学完这篇从Java小白到架构师

50个JAVA常见代码大全&#xff1a;学完这篇从Java小白到架构师 Java&#xff0c;作为一门流行多年的编程语言&#xff0c;始终占据着软件开发领域的重要位置。无论是初学者还是经验丰富的程序员&#xff0c;掌握Java中常见的代码和概念都是至关重要的。本文将列出50个Java常用…

【Linux手册】冯诺依曼体系结构

目录 前言 五大组件 数据信号 存储器&#xff08;内存&#xff09;有必要吗 常见面试题 前言 冯诺依曼体系结构是当代计算机基本架构&#xff0c;冯诺依曼体系有五大组件&#xff0c;通过这五大组件直观的描述了计算机的工作原理&#xff1b;学习冯诺依曼体系可以让给我们更…

10_聚类

描述 聚类&#xff08;clustering&#xff09;是将数据集划分成组的任务&#xff0c;这些组叫作簇&#xff08;cluster&#xff09;。其目标是划分数据&#xff0c;使得一个簇内的数据点非常相似且不同簇内的数据点非常不同。与分类算法类似&#xff0c;聚类算法为每个数据点分…

【SSM】SpringBoot学习笔记1:SpringBoot快速入门

前言&#xff1a; 文章是系列学习笔记第9篇。基于黑马程序员课程完成&#xff0c;是笔者的学习笔记与心得总结&#xff0c;供自己和他人参考。笔记大部分是对黑马视频的归纳&#xff0c;少部分自己的理解&#xff0c;微量ai解释的内容&#xff08;ai部分会标出&#xff09;。 …

国产高性能pSRAM选型指南:CSS6404LS-LI 64Mb QSPI伪静态存储器

一、芯片基础特性 核心参数 容量 &#xff1a;64Mb&#xff08;8M 8bit&#xff09;电压 &#xff1a;单电源供电 2.7-3.6V &#xff08;兼容3.3V系统&#xff09;接口 &#xff1a;Quad-SPI&#xff08;QPI/SPI&#xff09;同步模式封装 &#xff1a; SOP-8L (150mil) &#…