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 组名。删除组


目录
相关文章
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
586 0
|
消息中间件 存储 监控
实战Linux I/O多路复用:借助epoll,单线程高效管理10,000+并发连接
本文介绍了如何使用Linux的I/O多路复用技术`epoll`来高效管理超过10,000个并发连接。`epoll`允许单线程监控大量文件描述符,显著提高了资源利用率。文章详细阐述了`epoll`的几个关键接口,包括`epoll_create`、`epoll_ctl`和`epoll_wait`,以及它们在处理并发连接中的作用。此外,还探讨了`epoll`在高并发TCP服务场景的应用,展示了如何通过`epoll`和线程/协程池来构建服务框架。
1213 117
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
128 3
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
Linux
Linux 中RPM软件包管理
Linux 中RPM软件包管理
163 2
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
119 11
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
297 1
|
监控 安全 Unix
探索Linux命令repo-rss:管理仓库更新的新视角
`repo-rss`是一个设想中的Linux工具,用于通过RSS订阅跟踪软件仓库更新。它能订阅仓库、检测更新、生成RSS feed并发送通知。主要特点包括实时性、灵活性、自动化和可扩展性。用户可定制订阅、时间间隔及输出格式。示例用法包括订阅Debian仓库、将更新输出为RSS文件或发送至邮箱。使用时需注意安全、资源消耗和隐私,最佳实践包括定期评估、自动化处理、多源订阅和备份。此工具展示了RSS在软件管理中的创新应用。
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
272 1
|
安全 Linux 数据处理
探索Linux的kmod命令:管理内核模块的利器
`kmod`是Linux下管理内核模块的工具,用于加载、卸载和管理模块及其依赖。使用`kmod load`来加载模块,`kmod remove`卸载模块,`kmod list`查看已加载模块,`kmod alias`显示模块别名。注意需有root权限,且要考虑依赖关系和版本兼容性。最佳实践包括备份、查阅文档和使用额外的管理工具。