当前位置: 首页 > news >正文

[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.xdnf.cn/news/1131517.html

相关文章:

  • 【Java入门到精通】(五)初识MySql数据库
  • beautiful-react-hooks库——入门实践常用hook详解
  • [Matlab]使用系统辨识应用程序辨识线性模型
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博类别信息爬取
  • CoreNext主题源码 V1.7.1开心版 WordPress轻量高性能主题
  • 访问者设计模式
  • Ray集群部署与维护
  • pytorch | minist手写数据集
  • 基于Hadoop与LightFM的美妆推荐系统设计与实现
  • 前端网络性能优化
  • STM32 GPIO的八种工作模式
  • Fluent许可问题常见解答
  • 分布式弹性故障处理框架——Polly(1)
  • JobSet:Kubernetes 分布式任务编排的统一解决方案
  • 为什么要用erc165识别erc721或erc1155
  • LIN通信协议入门
  • 面试问题:
  • AI治AI:大语言模型自检新法
  • ARCGIS PRO DSK 颜色选择控件(ColorPickerControl)的调用
  • Java设计模式之-组合模式
  • Haproxy代理服务(小白的“升级打怪”成长之路)
  • 微信小程序141~150
  • rustdesk远控电脑替代todesk,平替向日葵等软件
  • 【云原生网络】Istio基础篇
  • 实时调度类
  • 鸿蒙网络编程系列58-仓颉版TLS数字证书查看及验签示例
  • JavaScript进阶篇——第五章 对象成员管理与数组遍历优化
  • uniapp+vue3+鸿蒙系统的开发
  • 查看.bin二进制文件的方式(HxD十六进制编辑器的安装)
  • 从缓存 CAS 看Kimi K2使用的MuonClip优化器