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

[Linux] Linux用户和组管理

目录

用户和组介绍

用户介绍

passwd文件

group文件

组的类型

本地用户管理

whoami命令

who和w命令

users命令

useradd命令

usermod命令

userdel命令

本地组管理

groupadd命令

groupmod命令

groupdel命令

groupmems命令

管理用户密码

shadow文件

chage命令

设置账户过期

增加一个uid为0的用户


用户和组介绍

用户介绍

用户帐户主要有三种类型:

  • superuser:用于管理系统,用户名称为root,UID为o,对系统具有完全访问权限。

  • system users:系统具有系统用户帐户,由提供支持服务的进程使用。这些进程或守护进程通常不需要以超级用户身份运行。它们是非特权帐户,用户保护自己文件和其他资源。系统用户帐户不用于交互方式登录系统。

  • regular users:大多数用户拥有常规用户帐户,用于日常工作。

passwd文件

/etc/passwd文件保存操作系统登录用户信息。每行包含一个登录用户信息,以冒号分隔7个域。

格式:

name:password:UID:GIDGECOS:directory:shell

解释如下:

  • name:用户登录名

  • password:用户密码,以x表示

  • UID:用户ID

  • GID:用户主组ID

  • GECOS:用户描述信息,通常为用户的真实姓名

  • directory:用户主目录,启动shell时的工作目录,默认位于/home/username

  • shell:用户打开终端时运行的程序,默认是shell。

group文件

组是用户的集合,组中用户继承组权限。与用户一样,组具有组名称以使其更易于使用。系统通过分配给它们的唯一标识号,组ID或GID来区分组。

/etc/group文件保存操作系统组信息。每行包含一个组信息,以冒号分隔4个域。格式:

group_name:password:GID:user_list

解释如下:

  • group_name:组名称

  • password:组密码,用x表示

  • GID:组ID,唯一表示组

  • user_ist:作为补充的成员

组的类型

  • 主要组:每个用户只有一个主要组,/etc/passwd文件中的GID编号定义。默认情况下,用户创建的新文件组所有者为用户的主要组。通常,在创建新的常规用户时,会创建一个与该用户同名的新组。该组用作新用户的主要组,该用户是此用户专用组的唯一成员,有助于简化文件权限管理。

  • 补充组:用户还可以拥有补充组。补充组的成员资格由/etc/group文件确定。根据用户的任何组是否具有访问权限,授予用户访问权限的权限。例如,如果用户user01具有主要组user01和补充组wheel和webadmin,则该用户可以读取这三个组中任何一个组可读的文件。

#查看用户信息
id

#查看用户uid
id -u demisse

本地用户管理

whoami命令

查看当前终端中登录的用户

whoami

who和w命令

查看当前系统中所有终端上登录的用户,以及用户登录的时间

users命令

users

useradd命令

#创建用户usertest
useradd usertest
grep usertest /etc/passwd

useradd -u 8888 -d /opt/usertest2 -c "user for software manager" -g wheel -s /sbin/nologin usertest2

各选项说明:

  • -u 8888:指定用户ID(UID)为8888

  • -d /opt/usertest2:设置家目录为/opt/usertest2

  • -c "user for software manager":添加用户描述信息(用于软件管理)

  • -g wheel:将用户的主组设为wheel组(管理员组)

  • -s /sbin/nologin:设置登录shell为/sbin/nologin表示这是一个服务账户,不能用于直接登录系统

  • usertest2:要创建的用户名

#创建一个没有密码的账户
useradd -p '' tom

新用户家目录中的文件来源于/etc/skel/目录。创建用户的时候,用户属性默认参数配置在/etc/login.defs文件

usermod命令

修改用户属性

usermod usertest2 -u 1008 -md /home/usertest2 -s /bin/bash
grep usertest2 /etc/passwd
ls -d /home/usertest2/
su - usertest2#添加补充组,如果没有-a选项,则代表将补充组设置为usertest1,原先的补充组就被覆盖了
usermod -aG usertest1 usertest2
id usertest2

userdel命令

#删除
userdel usertest1
[10:50:36 root@rocky8-znf ~]# userdel usertest2
#无法删除
userdel: user usertest2 is currently used by process 4418
#强制删除
[10:51:21 root@rocky8-znf ~]# userdel -f  usertest2

尽量不要强制删除,要找到无法删除的原因

本地组管理

groupadd命令

#创建名为admin的组
[10:52:35 root@rocky8-znf ~]# groupadd admin
#创建名为susadmin的组,组id为2000
[12:50:54 root@rocky8-znf ~]# groupadd sysadmin -g 2000
#查看
[12:51:14 root@rocky8-znf ~]# grep admin /etc/group

groupmod命令

#修改组名称
groupmod --new-name admins admin
#修改组id
groupmod -g 2002 admins
#验证
grep 'admins' /etc/group

groupdel命令

groupdel sysadmin

groupmems命令

#添加成员
groupmems -g admins -a demisse
groupmems -g admins -l
id demisse

#删除成员
groupmems -g admins -d demisse
#清空组中所有成员
groupmems -g admins -a demisse
groupmems -g admins -p

管理用户密码

shadow文件

/etc/shadow文件保存操作系统登录用户密码信息

  • login name:用户登录名。

  • encrypted password:加密的密码。

  • date of last password change:上一次密码更改日期,以距离1970-1-1过去的天数表示。设置为0,强制用户下次登录时更改密码。

  • minimumpasswordage:最小密码生命周期。设置为0,密码可以随时更改。

  • maximum password age:最大密码生命周期。

  • password warning period:密码过期前,提前多少天告警。设置为0,不提示过期。

  • password inactivity period:密码过期后,非活跃天数,在期间密码仍可以使用。

  • account expirationdate:账户过期时间,以距离1970-1-1过去的天数表示。

  • reserved field:保留域。

chage命令

#查看用户密码信息
chage -l demisse

#修改用户密码要求
chage -M 100 demisse
chage -m 10 demisse

#设置用户密码过期时间是过去的一个时间,以便确保用户密码过期,登录时强制用户更改密码
chage -d 0 demisse
#设置为1,确保密码很久未改动
chage -d 1 demisse
#设置用户账户过期时间是过去的一个时间,一边锁定用户账户
chage -E 1970-1-1 demisse
  • usermod -p 更改用户密码

  • usermod -s 限定用户shell

  • usermod -L 锁定用户密码

  • usermod -U 解锁用户密码

  • usermod -d 删除用户密码

设置账户过期

等效于passwd -e

usermod -e 1999-1-1 demisse

增加一个uid为0的用户

方法1:进入etc/passwd中将自己的用户id改为0,此时该账户就可以行使root权限了

demisse:x:0:1000:demisse:/home/demisse:/bin/bash

方法2:

useradd -o -u 0 demisse

demisse和root账户是两个不同的账户,但是demisse用户获得了root账户的权限。

相关文章:

  • 免费网站建站深圳的seo网站排名优化
  • 青岛做网站eoe自动点击器下载
  • 哪一个景区网站做的最成熟微信朋友圈广告
  • 用路由器建设网站google play服务
  • 网站建设培训费用多少建站流程主要有哪些
  • ps做网站首页效果特效百度推广怎么收费的
  • 用福昕阅读器打开pdf文件,整个程序窗口自动缩小的问题
  • Python邮件自动化完全指南:从基础到高级应用
  • 如何通过nvm切换本地node环境详情教程(已装过node.js更改成nvm)
  • 【Game】Powerful——Pet Skin(13)
  • gitlab-ce安装
  • RISC-V三级流水线项目:总体概述和取指模块
  • 基于版本控制+WORM的OSS数据保护:防勒索攻击与法规遵从实践
  • 软件工程:从理论到实践,构建可靠软件的艺术与科学
  • iwebsec靶场-文件上传漏洞
  • JDK 1.8 Stream API:集合流处理深度解析
  • SQL关键字三分钟入门:UPDATE —— 修改数据
  • C++ 快速回顾(一)
  • 覆盖迁移工具选型、增量同步策略与数据一致性校验
  • 用字符打印中文字“里”
  • 芸众商城系统部署教程 接口报错500 芸众商城队列安装启动教程
  • Javaweb - 5 事件的绑定
  • Sping AI接入deepseek
  • 微信小程序中 rpx与px的区别
  • 【FreeRTOS】FreeRTOS源码概述
  • HSA22HSA29美光固态芯片D8BJVC8BJW