[Linux入门] Linux 账号和权限管理入门:从基础到实践

          

        一、Linux 用户账号:谁能访问系统?

1️⃣超级用户(root)

2️⃣普通用户

3️⃣程序用户

二、组账号:让用户管理更高效

1️⃣组的类型

2️⃣特殊组

三、用户与组的 “身份证”:UID 和 GID

四、配置文件:账号信息存哪里?

1️⃣用户配置文件

2️⃣组配置文件

五、用户账号管理:创建、修改与删除

1️⃣创建用户:useradd与adduser

2️⃣设置密码:passwd

3️⃣修改用户属性:usermod

4️⃣删除用户:userdel

六、组账号管理:创建、修改与删除

1️⃣创建组:groupadd

2️⃣管理组成员:gpasswd

3️⃣删除组:groupdel

七、账号信息查询:快速了解系统状态

1️⃣groups:查看用户所属组

2️⃣id:查看用户 UID/GID

3️⃣finger:查看用户详细信息

4️⃣w:查看当前登录用户

八、文件与目录权限:控制访问的 “钥匙”

1️⃣权限的表示:10 位字符

2️⃣ 权限设置:chmod

九、文件与目录归属:chown

十、默认权限:umask的作用

1️⃣计算方式

2️⃣设置umask

命令总结


一、Linux 用户账号:谁能访问系统?

Linux 系统中,所有用户都需要通过 “账号” 访问资源,不同类型的账号拥有不同的权限和作用,主要分为三类:

1️⃣超级用户(root)

  • 权限:拥有系统最高权限,可执行任何操作(如修改系统配置、删除关键文件等),类似于 Windows 的 Administrator。
  • 特点:UID(用户标识号)固定为 0,是系统默认的超级管理员。
  • 使用建议:仅在系统管理(如安装软件、配置服务)时使用,日常操作建议用普通用户,减少误操作风险。

2️⃣普通用户

  • 权限:权限受限制,仅在自己的 “宿主目录”(如/home/用户名)拥有完整权限,其他目录的操作需依赖授权。
  • 创建方式:由 root 或管理员创建,UID 范围通常为 500-60000。
  • 用途:供个人日常使用,比如编写文档、运行普通程序等。

3️⃣程序用户

  • 权限:低权限,通常不允许登录系统,仅用于维持程序或服务运行。
  • 常见例子bin(系统命令程序)、ftp(FTP 服务)、mail(邮件服务)等,UID 范围默认是 1-499。
  • 作用:隔离程序权限,避免因程序漏洞导致系统被攻击。

二、组账号:让用户管理更高效

组账号是将多个用户按需求集合的管理单位,通过组可以批量设置权限,简化管理。

1️⃣组的类型

  • 基本组(私有组):每个用户默认属于的组,通常与用户名同名,创建用户时自动生成。
  • 附加组(公共组):用户额外加入的组,用于获取特定权限。

例:用户zhangsan的基本组是tech(技术部),因工作需要加入mailadm(邮件管理员组),则tech是基本组,mailadm是附加组。

2️⃣特殊组

  • wheel 组:在 Red Hat、CentOS 等系统中,用于授予管理员权限,成员可通过sudo执行高级命令,GID 为 10。
  • sudo 组:在 Ubuntu 系统中替代 wheel 组,成员可使用sudo获取管理员权限,增强安全性。

三、用户与组的 “身份证”:UID 和 GID

Linux 通过数字标识(而非用户名)区分用户和组,这就是 UID(用户 ID)和 GID(组 ID)。

  • UID:每个用户唯一,root 的 UID 固定为 0,程序用户 1-499,普通用户 500-60000。
  • GID:每个组唯一,root 组的 GID 固定为 0,程序组 1-499,普通组 500-60000。

为什么用数字? 系统内核处理数字比字符串更快,且避免用户名重复导致的冲突。

四、配置文件:账号信息存哪里?

用户和组的信息存储在相应的配置文件中,理解这些文件有助于手动管理账号。

1️⃣用户配置文件

  • /etc/passwd:存储用户基本信息,每行对应一个用户,用:分隔 7 个字段:

    • 格式示例:root:x:0:0:root:/root:/bin/bash
    • 字段含义:用户名、密码占位符(x)、UID、GID、用户说明、宿主目录、登录 Shell。
  • /etc/shadow:存储用户密码(加密后)和有效期等敏感信息,仅 root 可读取,每行 9 个字段:

    • 格式示例:root:$1$55HB4pbx...:14374:0:99999:7:::
    • 关键字段:用户名、加密密码(*!!表示账号锁定)、密码过期时间、账号失效时间。

2️⃣组配置文件

  • /etc/group:存储组基本信息,每行对应一个组,包含组名、GID、组成员等。
  • /etc/gshadow:存储组密码(极少使用),用于管理组的访问权限。

五、用户账号管理:创建、修改与删除

掌握以下命令,可轻松管理用户账号。

1️⃣创建用户:useraddadduser

  • useradd:基础命令,需手动指定参数,适合脚本自动化。

    • 常用选项:
      • -d:指定宿主目录(如useradd -d /admin admin创建admin,宿主目录为/admin);
      • -s:指定登录 Shell(如useradd -s /bin/bash newuser,默认 Shell 是/bin/bash);
      • -m:自动创建宿主目录(如useradd -m test)。
  • adduser:交互式命令,自动配置宿主目录、Shell 等,适合新手(Debian/Ubuntu 常用)。

    • 示例:adduser mm会提示设置密码、用户信息等,自动创建/home/mm目录。

2️⃣设置密码:passwd

  • 作用:为用户设置或修改密码,刚创建的用户需设置密码后才能登录。
  • 用法:
    • passwd 用户名:root 为其他用户设密码(如passwd test1);
    • passwd:普通用户修改自己的密码(需验证旧密码);
    • 选项:-l锁定账号(passwd -l test1)、-u解锁(passwd -u test1)。

3️⃣修改用户属性:usermod

  • 常用选项:
    • -s:修改登录 Shell(如usermod -s /sbin/nologin test1禁止test1登录);
    • -g:修改基本组(如usermod -g newgroup test1);
    • -L/-U:锁定 / 解锁账号(如usermod -L test1);
    • -d:修改用户的宿主目录位置

4️⃣删除用户:userdel

  • 用法:userdel 用户名删除用户,-r选项同时删除宿主目录(如userdel -r test1)。
  • 注意:若用户正在登录,需先退出再删除,否则会失败。

六、组账号管理:创建、修改与删除

1️⃣创建组:groupadd

  • 示例:groupadd class02创建class02组,GID 自动分配;groupadd -g 1005 class03指定 GID 为 1005。

2️⃣管理组成员:gpasswd

  • 常用选项:
    • -a:添加成员(如gpasswd -a mike rootmike加入root组);
    • -d:删除成员(如gpasswd -d webmaster rootwebmasterroot组移除)。

3️⃣删除组:groupdel

  • 示例:groupdel class02删除class02组(需确保组内无用户,否则失败)。

七、账号信息查询:快速了解系统状态

1️⃣groups:查看用户所属组

  • 示例:groups mike显示mike所属的所有组(如mike : mike root)。

2️⃣id:查看用户 UID/GID

  • 示例:id root显示root的 UID(0)、GID(0)及所属组。

3️⃣finger:查看用户详细信息

  • 示例:finger root显示root的宿主目录(/root)、登录 Shell(/bin/bash)等。

4️⃣w:查看当前登录用户

  • 示例:w显示登录用户、终端、登录时间等(如root192.168.204.1登录)。

八、文件与目录权限:控制访问的 “钥匙

Linux 通过 “权限” 和 “归属” 控制文件 / 目录的访问,这是系统安全的核心。

1️⃣权限的表示:10 位字符

ls -l查看文件属性时,最左侧的 10 位字符代表权限,例如drwxr-xr-x

  • 第 1 位:文件类型(d= 目录、-= 普通文件、l= 链接文件);
  • 2-4 位:属主权限(r= 读、w= 写、x= 执行);
  • 5-7 位:属组权限;
  • 8-10 位:其他用户权限。

例:rwxr-xr-x表示:

  • 属主:可读、可写、可执行(rwx);
  • 属组:可读、可执行(r-x);
  • 其他用户:可读、可执行(r-x)。

2️⃣ 权限设置:chmod

  • 符号模式:用u(属主)、g(属组)、o(其他)、a(所有)配合+(加权限)、-(减权限)、=(设权限)。

    • 示例:chmod u+x file给属主添加执行权限;chmod g-w,o-r file移除属组写权限和其他用户读权限。
  • 数字模式:用 3 位数字表示权限(r=4w=2x=1),总和越大权限越全。

    • 示例:chmod 755 file表示属主rwx(7=4+2+1)、属组r-x(5=4+1)、其他r-x(5);
    • 递归设置:chmod -R 644 /data/data及子目录权限设为rw-r--r--

九、文件与目录归属:chown

通过chown可修改文件 / 目录的属主(所有者)或属组。

  • 用法:
    • 修改属主:chown ftp /var/ftp/var/ftp属主改为ftp
    • 同时修改属主和属组:chown daemon:wheel myfilemyfile属主改为daemon,属组改为wheel
    • 递归修改:chown -R test:test /data/data及子目录的属主和属组改为test

十、默认权限:umask的作用

umask(权限掩码)决定新创建文件 / 目录的默认权限,它定义了 “需要屏蔽的权限”。

1️⃣计算方式

  • 新文件默认最大权限是666rw-rw-rw-),目录是777rwxrwxrwx);
  • 实际权限 = 默认权限 & (~umask 值)(~表示取反)。

例:若umask022

  • 新文件权限:666 & ~022 = 644rw-r--r--);
  • 新目录权限:777 & ~022 = 755rwxr-xr-x)。

2️⃣设置umask

  • 临时设置:umask 022(当前终端有效);
  • 永久设置:在~/.bashrc(用户级)或/etc/profile(系统级)添加umask 022,执行source ~/.bashrc生效。

命令总结

命令功能常用选项示例
useradd添加用户账号-c:指定注释性描述;-d:指定用户主目录,配合 - m 可创建目录;-g:指定所属基本组;-G:指定所属附加组;-s:指定登录 Shell;-u:指定 UID 号;-m:自动创建主目录;-M:不创建主目录;-e:指定账号失效时间创建辅助管理员账号 admin,宿主目录为 /admin,基本组为 root:useradd -d /admin -g root admin;创建名为 b_down 的 FTP 账号,2025-12-31 失效且禁止终端登录:useradd -e 2025-12-31 -s /sbin/nologin b_down
adduser添加新用户,自动配置主目录、Shell 等,交互性更强,适用于 Debian 系列--system:创建系统用户,不分配主目录;--home <目录>:指定主目录;--shell <shell 路径 >:指定默认 Shell;--group:创建与用户名相同的用户组;--gid <GID>:指定组 ID;--uid <UID>:指定用户 ID;--no-create-home:不创建主目录;--disabled-password:创建用户但不设置密码;--disabled-login:创建用户但不允许登录;--gecos "<信息>":设置用户 GECOS 信息;--extra-groups < 组名,...>:让新用户加入额外的组创建用户 mm 并交互式设置信息:adduser mm;创建系统用户 sysuser:sudo adduser --system sysuser
passwd管理用户口令,包括设置、修改、锁定、解锁等-l:锁定账号;-u:解锁账号;-d:使账号无口令修改 test1 用户的密码:passwd test1;锁定账号 bdqn_zeng:passwd -l bdqn_zeng;解锁账号 bdqn_zeng:passwd -u bdqn_zeng
usermod修改用户账号属性-u:修改 UID 号;-d:修改宿主目录;-e:修改账号失效时间;-g:修改基本组;-G:修改附加组;-s:指定登录 Shell;-l:更改登录名称;-L:锁定用户账户;-U:解锁用户账户;-a:追加附加组,不改变原本附加组锁定账号 test1:usermod -L test1;更改用户 username 的初始用户组为 newgroup:sudo usermod -g newgroup username;将用户 username 添加到 group1 和 group2:sudo usermod -G group1,group2 username
userdel删除用户账号-r:同时删除宿主目录和邮件目录;-f:强制删除删除名为 test1 的用户并同时删除其宿主目录:userdel -r test1;删除用户 alice:userdel alice;强制删除用户 alice:userdel -f alice

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

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

相关文章

阿里云ssl证书自动安装及续订(acme)

目录 一、shell命令安装 二、docker run安装 三、docker compose安装 一、shell命令安装 # 安装acme curl https://get.acme.sh | sh -s emailfloxxx5163.com# 注册zerossl .acme.sh/acme.sh --register-account -m flowxxx25163.com --server zerossl# 获取证书 export Al…

@fullcalendar/vue 日历组件

功能&#xff1a;日程安排&#xff0c;展示日历&#xff0c;可以用来做会议日历&#xff0c;可以跨日期显示日程。 Fullcalendarvue3 日历组件 参考文档&#xff1a;【vue2】一个完整的日历组件 fullcalendar&#xff0c;会议预约功能 中文说明文档&#xff1a;https://www.he…

Dijkstra 算法求解多种操作

一、问题背景与核心需求 需要找到从a到b的最优操作序列&#xff0c;使得总花费最小。三种操作的规则为&#xff1a; 操作 1&#xff1a;x → x1&#xff0c;花费c1&#xff1b;操作 2&#xff1a;x → x-1&#xff0c;花费c2&#xff1b;操作 3&#xff1a;x → x*2&#xff0…

本地项目提交到git教程

创建远程仓库 登录 GitHub&#xff0c;点击右上角 New repository。 填写仓库名称&#xff08;如 my-project&#xff09;、描述&#xff0c;选择公开 / 私有。 不要初始化 README、.gitignore 或 LICENSE&#xff08;保持空仓库&#xff09;&#xff0c;点击 Create repositor…

Linux 密码生成利器:pwgen 命令详解

往期好文&#xff1a;统信 UOS 运行 Windows 应用新利器&#xff01;彩虹虚拟化软件 V3.2 全新上线&#xff0c;限时30天免费体验 在日常运维、安全测试、用户管理等场景中&#xff0c;随机密码的生成是一项常见需求。为了避免人工设置密码带来的重复性弱密码问题&#xff0c;…

Qt 应用程序入口代码分析

Qt 应用程序入口代码分析 这段代码是 Qt GUI 应用程序的标准入口点&#xff0c;相当于 Qt 程序的"心脏"。让我详细解释每一部分的作用&#xff1a; int main(int argc, char *argv[]) {// 1. 创建 Qt 应用程序对象QApplication a(argc, argv);// 2. 创建主窗口对象Wi…

基于springboot+mysql的中小型医院网站(源码+论文+开题报告)

一、开发环境 Java技术 描述&#xff1a;Java是一种非常常用的编程语言&#xff0c;在全球编程语言排行榜上总是前三。Java的跨平台能力十分强大&#xff0c;只需一次编译&#xff0c;任何地方都可以运行。除此之外&#xff0c;它还拥有简单的语法和实用的类库&#xff0c;让…

【Docker基础】Docker-compose常用命令实践(三):镜像与配置管理

目录 前言 1 镜像与配置管理概述 1.1 核心概念解析 2 镜像构建命令详解 2.1 构建镜像&#xff08;build命令&#xff09; 2.2 基本语法 2.3 常用选项 2.4 构建过程流程 2.5 实际应用案例 3 配置验证命令详解 3.1 验证配置&#xff08;config命令&#xff09; 3.2 基…

Android 实例 - 分页器封装实现(上一页按钮、下一页按钮、当前页码 / 总页数、每页条数、总记录数)

一、需求分页器需要包含&#xff1a;【上一页按钮】、【下一页按钮】、【当前页码 / 总页数】、【每页条数】、【总记录数】点击【上一页按钮】&#xff0c;渲染上一页的数据&#xff0c;如果当前页码为第一页&#xff0c;则禁用【上一页按钮】点击【下一页按钮】&#xff0c;渲…

从代码学习深度强化学习 - SAC PyTorch版

文章目录 前言 SAC处理连续动作空间问题 (Pendulum-v1) 核心代码实现 **工具函数与环境初始化** **ReplayBuffer、网络结构与SAC算法** **训练与结果** SAC处理离散动作空间问题 (CartPole-v1) 核心代码实现 **工具函数与环境初始化** **ReplayBuffer、网络结构与SAC算法 (离散…

物联网安装调试-温湿度传感器

以下为温湿度传感器在物联网安装调试中的全流程技术指南,涵盖选型、安装、调试及故障排查,结合工业/农业/家居三大场景实操要点: 一、传感器选型核心参数表 参数 工业场景 农业大棚 智能家居 选型建议 精度 0.5℃/1.5%RH 1℃/3%RH 1℃/5%RH 工业级首选Sensirion SHT3x系列 防…

MySQL 核心知识点梳理(1)

目录 1.什么是数据库? 关系型数据库 非关系型数据库 2.Mysql出现性能差的原因? 3.MySQL的内联,左外联,右外连接的区别 4.为什么要有三大范式 建表需要考虑的问题? char和varchar的区别 blob和text的区别? DATETIME和TIMESTAMP的区别 in和exists的区别 null值陷 …

Word快速文本对齐程序开发经验:从需求分析到实现部署

在日常办公中&#xff0c;文档排版是一项常见但耗时的工作&#xff0c;尤其是当需要处理大量文本并保持格式一致时。Microsoft Word作为最流行的文档处理软件之一&#xff0c;虽然提供了丰富的排版功能&#xff0c;但在处理复杂的文本对齐需求时&#xff0c;往往需要重复执行多…

力扣面试150(34/150)

7.20 242. 有效的字母异位词 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的 字母异位词 我的思路&#xff1a; 遍历s到一个sMap&#xff0c;字母次数的方式遍历t&#xff0c;判断t中的char是否在sMap当中&#xff0c;如果在的话次数-1&#xff0c;判…

软件工程:可行性分析的任务及报告

简介 本博客围绕软件工程中的第一关——“可行性分析的任务及报告”展开&#xff0c;详细解析了可行性分析的基本概念、分析任务、四类可行性&#xff08;技术、经济、操作、社会&#xff09;以及可行性分析报告的结构与撰写要点。通过丰富的理论基础与图示支持&#xff0c;帮…

STM32与树莓派通信

STM32 与树莓派&#xff08;Raspberry Pi&#xff09;的通信常见方案及实现步骤&#xff1a;1. UART 串口通信&#xff08;最简单&#xff09;适用场景&#xff1a;短距离、低速数据交换&#xff08;如传感器数据、调试信息&#xff09;。 硬件连接&#xff1a;STM32引脚树莓派…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 数据持久化到Mysql

大家好&#xff0c;我是java1234_小锋老师&#xff0c;最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程&#xff0c;持续更新中&#xff0c;计划月底更新完&#xff0c;感谢支持。今天讲解数据持久化到Mysql 视频在线地址&#xff…

【Java EE】多线程-初阶-Thread 类及常见方法

多线程-初阶2. Thread 类及常⻅⽅法2.1 Thread 的常⻅构造⽅法2.2 Thread 的⼏个常⻅属性2.3 启动⼀个线程 - start()2.4 中断⼀个线程2.5 等待⼀个线程 - join()2.6 获取当前线程引⽤2.7 休眠当前线程本节⽬标• 认识多线程• 掌握多线程程序的编写• 掌握多线程的状态• 掌握…

LVS技术知识详解(知识点+相关实验部署)

目录 1.1 LVS简介 1.2 LVS体系结构 1.3 LVS相关术语 1.4 LVS工作模式 1.5 LVS工作原理 1.6 LVS调度算法 2.LVS相关实验部署 2.1 lvs软件相关信息 2.1.1 ipsadm常见参数 2.1.2 试例 2.2 LVS部署NAT模式 2.2.1 实验环境 2.2.2 实验步骤 2.2.2.1 实验基础环境 2.2.…

芋道导入逻辑

一、代码 PostMapping("/import")Operation(summary "导入用户")Parameters({Parameter(name "file", description "Excel 文件", required true),Parameter(name "updateSupport", description "是否支持更新&a…