Linux用户和组的管理

简介: Linux用户和组的管理

登录流程

在你输入账号和密码后,系统会:

  • 先找寻/etc/passwd里面是否有你输入的账号,没有就跳出,有就查看该账号对应的UID和GID
  • (在/etc/group)读出来,另外将家目录和shell设定也读出
  • 进入/etc/shadow里面核对密码
  • 如果一切OK,进入shell管控的阶段

/etc/passwd结构

  1. 账号名称,就是用户名
  2. 密码,早期有,现在没有了,只显示一个x
  3. UID,0是超级管理员的UID,1999是系统账户,100060000是给普通用户用的
  1. GID,组的ID
  2. 用户信息说明栏,就相当于注释
  1. 家目录
  2. Shell,在登入系统后就是使用该Shell. Shell有bash,ch,sh等等

/etc/shadow结构

  1. 账号名称,就是用户名
  2. 密码,但该密码是加了密的。 在该字段前加!或*改变密码字段长度,会让密码暂时失效查询密码加密机制(Ubuntu不行):authconfig --test | grep hashing
  3. 最近更改密码的日期,以1970/1/1作为1开始算起
  4. 密码不可被更改的天数(与第三字段相比)。表示该账号在最近一次被更改(第三字段)要经过几天 能更改。如果该字段为0表示没有限制,随时可更改。10表示十天后才能在次更改
  5. 密码需要重新变更的天数(与第三字段相比)。该字段是在这个天数之内 必须 变更一次密码。如果设为99999表示没有强制之意。如果设定为10,表示在10天内必须更改一次密码, 否则这个账户的密码将会变成过期特性
  6. 密码需要变更期限前的警告天数(与第五字段相比)。当密码有限期快要到的时候,系统会依据这个设定,发出警告提醒该用户尽快去修改密码
  7. 密码过期后的账号宽限日期(与第五字段相比)。密码有效期=变更日期(第三字段)+ 重新变更日期(第五字段),过了该期限用户仍然可以登入系统。但如果密码过期了,当你登入系统时,会强制你更改密码才能登入
  1. 账号失效日期(1970/1/1开始)。不管密码是否过期,该账号都不能使用了
  2. 保留字段。看以后有没有新功能加入

/etc/group

  1. 组名
  1. 组名密码,现在也没有了,只显示一个x。组名密码移到了/etc/gshadow里面
  2. GID,组的ID
  3. 该群组支持的账号名称。也就是那些用户是该组的成员

/etc/gshadow

  1. 组名
  2. 密码栏,开头为!表示无合法密码,所以无群组管理员
  3. 群组管理员的账号
  4. 有加入群组支持到所属账号

有效群组和初始群组

  • 初始群组:在用户登入系统立刻等到该组的权限,/etc/group下的第三个字段
  • 有效群组:作用就是创文件是该文件的所属群组是谁
  • groups: 查看当前用户支持的群组
  • newgrp + 群组: 有效群组的切换,这样你创建文件时该文件的所属群组就是你修改的群组了。 该命令是在子shell里执行的

账号管理的相关命令

useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明] [-d 家目录绝对路径] [-s shell] [-e 失效时期]使用者账号

  • -m 强制建立家目录
  • -M 强制不建立家目录
  • -f 过期宽限日期,,0为立刻失效,-1为永不失效
  • -r 建立系统账号
  • -D , 显示useradd配置文件(/etc/default/useradd)里面的默认值
  • GROUP=100 , 预设的群组
  • HOME=/home, 默认家目录所在目录
  • INACTION=-1 , 密码失效日
  • EXPIRE= , 账号失效日
  • SHELL=/bin/bash , 预设的shell
  • CKEL=/etc/skel , 使用家目录下面的内容数据参考目录
  • CREATE_MAIL_SPOOL=yes, 是否主动为用户建立邮件邮箱
  • /etc/login.defs文件还有一些其他默认值

passwd [-l] [-u] [–stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日数] 账号

  • -l , 上锁
  • -u , 解锁
  • -n + 天数, 多久不可修改
  • -x + 天数, 多久内必须修改一次
  • -w + 天数, 密码过期前的警告天数
  • -i , 密码失效日期
  • -S ,列出密码相关参数
  • chage [-ldEImMW] 账号名
  • -l , 列出该账号的详细参数
  • -d , 接日期,修改 shadow 第三字段(最近一次更改密码的日期), 格式为YYYY-MM-DD
  • -E , 接日期,修改shadow第八字段(账号失效日期),格式为YYYY-MM-DD
  • -I ,后面接天数,修改shadow第七字段 (密码失效日期)
  • -m , 后面接天数,修改shadow第四字段(密码多少天才能再次修改)
  • -M , 后面接天数,修改shadow第五字段(密码多少天内至少要修改一次)
  • -W , 后面接天数,修改shadow第六字段(在密码过期前多少天警告用户)
  • usermod [-cdegGlsuLU] 用户名
  • -c , 后面接账号的说明
  • -d , 后面接家目录
  • -e, 后面接日期,shadow里面第八字段,账号过期日期
  • -f , 后面接天数,shadow第七字段,密码过期日期
  • -g , 后面接初始群组
  • -G , 后面接次要群组,表示修改次要群组
  • -a , 与-G合用,表示增加次要群组
  • -l , 后面接账号名称。修改账号名
  • -s , 后面接shell的实际文件,如/bin/bash, /bin/sh等等
  • -u , 后面接
  • -L , 暂时将用户的密码冻结
  • -U, 解冻
  • id + 账号名, 列出账号相关的信息,包括UID,GID等等
  • finger [-s] username
  • -s , 列出用户的账号,全名,终端机代号,登入时间等
  • chfn [-foph] 账号名 , 该修改的其实就是passwd的第五字段
  • -f , 后面接完整的大名
  • -o , 你办公室的房间号码
  • -p , 办公室的电话号码
  • -h , 家里的电话号码
  • chsh [-ls]
  • -l , 列出目前系统支持的shell,其实就是/etc/shells的内容
  • -s , 设定修改自己的shell

群组相关的管理命令

  • groupadd [-g gid] [-r] 组名
  • -g , 后面接GID,用来给予某个GID
  • -r ,建立系统群组。跟useradd一样的参数耶
  • groupmod [-g gid] [-n group_name] 群组名
  • -g 修改既有的GID数字
  • -n 修改既有的组名。跟usermod参数一样

gpasswd [-A user1,…] [-M user3,…] [-rR] groupname

  • -a , 将后面的用户加入群组
  • -A , 设置后面的用户为群组管理员,可以有多个
  • -M, 将后面的用户加入该群组,可以多个
  • -d , 将后面的用户移除
  • -r , 将groupname的密码移除
  • -R , 让groupname的密码栏失效
  • groupdel 组名。删除组


目录
相关文章
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
39 0
|
1月前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
1月前
|
存储 监控 Shell
【Shell 命令集合 磁盘管理 】Linux 管理磁盘配额 quota命令使用教程
【Shell 命令集合 磁盘管理 】Linux 管理磁盘配额 quota命令使用教程
40 0
|
30天前
|
存储 算法 Linux
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
62 5
|
1月前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
56 1
|
1月前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
34 0
|
1月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
38 2
|
1月前
|
存储 监控 Shell
【Shell 命令集合 磁盘管理 】Linux 设置和管理用户或组的磁盘配额限制 edquota命令使用教程
【Shell 命令集合 磁盘管理 】Linux 设置和管理用户或组的磁盘配额限制 edquota命令使用教程
44 0
|
17天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
11天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
103 2