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

第三节:用户和用户组管理

理论知识

  1. 用户和用户组的概念:在 Linux 系统中,用户是使用系统资源的个体,每个用户都有一个唯一的用户名和用户 ID(UID)。用户组是一组用户的集合,每个用户组都有一个唯一的组名和组 ID(GID)。
  2. 用户账号的创建和删除:使用 useradd 命令可以创建一个新用户,使用 userdel 命令可以删除一个用户。在创建用户时,可以指定用户的主目录、登录 shell 等信息。
  3. 用户密码的管理:使用 passwd 命令可以为用户设置或修改密码。超级用户可以为任何用户设置密码,普通用户只能修改自己的密码。
  4. 用户组的创建和删除:使用 groupadd 命令可以创建一个新的用户组,使用 groupdel 命令可以删除一个用户组。
  5. 用户的默认配置文件:每个用户都有自己的默认配置文件,如 .bashrc.bash_profile 等。这些文件包含了用户的环境变量、别名等信息。
  6. 用户的主目录:用户的主目录是用户登录系统后默认的工作目录,通常位于 /home 目录下,以用户名命名。
  7. 用户的登录 shell:登录 shell 是用户登录系统后使用的命令解释器,常见的登录 shell 有 /bin/bash/bin/sh 等。
  8. 用户的权限管理:用户的权限可以通过用户组和文件权限来控制。不同的用户组可以拥有不同的权限,文件的权限也可以针对不同的用户组进行设置。
  9. 用户的账户锁定和解锁:使用 usermod 命令可以锁定或解锁用户账户。例如,锁定用户 testuser 的账户:
sudo usermod -L testuser

解锁用户 testuser 的账户:

sudo usermod -U testuser
  1. 用户的账户过期设置:可以为用户账户设置过期时间,当账户过期后,用户将无法登录系统。使用 chage 命令可以设置用户账户的过期时间。例如,设置用户 testuser 的账户在 30 天后过期:
sudo chage -E $(date -d '+30 days' +%Y-%m-%d) testuser
  1. 用户的账户信息查看:使用 id 命令可以查看用户的账户信息,包括 UID、GID、所属组等。例如:
id testuser
  1. 用户的账户切换:使用 su 命令可以切换用户。例如,切换到 root 用户:
su - root

实践案例

  1. 创建一个新用户:创建一个名为 newuser 的用户,并指定其主目录为 /home/newuser
sudo useradd -d /home/newuser -m newuser
  1. 为新用户设置密码:为 newuser 用户设置密码:
sudo passwd newuser
  1. 创建一个新的用户组:创建一个名为 newgroup 的用户组:
sudo groupadd newgroup
  1. 将用户添加到用户组:将 newuser 用户添加到 newgroup 用户组:
sudo usermod -G newgroup newuser
  1. 查看用户所属的用户组:查看 newuser 用户所属的用户组:
id newuser
  1. 修改用户的登录 shell:将 newuser 用户的登录 shell 修改为 /bin/sh
sudo usermod -s /bin/sh newuser
  1. 锁定用户账户:锁定 newuser 用户的账户:
sudo usermod -L newuser
  1. 解锁用户账户:解锁 newuser 用户的账户:
sudo usermod -U newuser
  1. 设置用户账户的过期时间:设置 newuser 用户的账户在 10 天后过期:
sudo chage -E $(date -d '+10 days' +%Y-%m-%d) newuser
  1. 查看用户账户的过期信息:查看 newuser 用户账户的过期信息:
sudo chage -l newuser
  1. 删除一个用户:删除 newuser 用户:
sudo userdel -r newuser
  1. 删除一个用户组:删除 newgroup 用户组:
sudo groupdel newgroup
http://www.xdnf.cn/news/2953.html

相关文章:

  • 测试——BUG篇
  • python类中的 __contains__方法是什么?
  • unity Orbbec Femto Bolt接入unity流程记录 AzureKinectExamples 插件 使用记录
  • oracle 批量查询每张表的数据量
  • RoPE 相对位置编码 VS 传统位置编码
  • neo4j vs python
  • Canal使用
  • 巧记英语四级单词 Unit7-上【晓艳老师版】
  • 【应用密码学】实验三 流密码(ZUC)
  • 智能电子白板的设计与实现:从硬件选型到软件编程
  • 【ArcGIS微课1000例】0143:什么是ovkml,如何转换为kml与shp?
  • 使用 OpenCV 实现图像中心旋转
  • SpringBoot获取用户信息常见问题(密码屏蔽、驼峰命名和下划线命名的自动转换)
  • Spring Cloud 项目中优雅地传递用户信息:基于 Gateway + ThreadLocal 的用户上下文方案
  • 破解工业协议孤岛:迈威MaxGate系列工业智能网关覆盖全场景需求
  • docker-vllm运行大模型
  • KUKA机器人快速启动设置
  • python:sklearn 主成分分析(PCA)
  • 本地大模型编程实战(28)查询图数据库NEO4J(1)
  • 四.割草机技术总结--4.基站发送给流动站的差分数据传输标准RTCM
  • ShenNiusModularity项目源码学习(25:ShenNius.Admin.Mvc项目分析-10)
  • pytest-前后置及fixture运用
  • GrapesJS 终极定制组件设计方案:扁平化对象属性编辑、多区域拖拽、多层嵌套与组件扩展实战
  • CentosLinux系统crontab发现执行删除命令失效解决方法
  • C语言(5)—函数
  • 计算机毕业设计--基于深度学习(U-Net与多尺度ViT)的车牌模糊图像修复算法设计与实现(含Github代码+Web端在线体验界面)
  • 大模型在肾癌诊疗全流程中的应用研究报告
  • transformer-实现单层Decoder 层
  • iOS签名的包支持推送功能吗?
  • Windows 桌面个性高效组件工具