Linux用户与组管理详解
在linux系统上,用户管理是基于用户名和密码的方式进行资源的分配,了解和掌握用户与组的管理是从事运维工作所必须具备的能力,也是将来从事运维行业的重要工作之一。这里我将介绍Linux系统中用户与组的一些相关概念及管理用户与组的常见命令等:
安全3A
Linux通过三个机制来保证用户的安全:
Authentication:认证
Authorization:授权
Accouting|Audition:审计
用户user
令牌:token
Linux用户:Username
管理员:root,UID=0(拥有对系统的最高操作权限)
普通用户:
系统用户:1-499,1-999(centos7)
登录用户:500+,1000+(centos7)
组 group:
Linux组:Groupname/GID
管理员组:root,GID=0
普通组:
系统组:1-499,1-999(centos7)
普通组:500+,1000+(centos7)
在创建用户不指定组的情况下,默认创建一个与该用户名相同的组作为该用户的主组
组的类别:
用户的主要组:
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户,私有组
用户的附加组:
一个用户可以属于零个或多个附加组
安全上下文
进程所能够访问资源的权限取决于进程的运行者的身份
用户和组的配置文件
/etc/passwd: 存放用户及其属性信息
/etc/shadow: 存放用户密码及其相关信息
/etc/group: 存放组及属性信息
/etc/gshadow: 存放组密码及其相关信息
/etc/default/useradd:新建账户模板信息
/etc/passwd
name:password:UID:GID:GECEO:directory:shell
用户名
密码:显示为x
UID:用户ID
GID:组ID
描述信息:GECOS,可添加用户描述信息
家目录:用户家目录
shell类型:用户shell类型
/etc/shadow
用户名
密码加密:算法$6;!!表示账户锁定
上次修改密码时间:距离1970.1.1的天数
密码最小修改时间:距离下次修改密码至少需间隔的天数(0表示随时可变更)
密码最大修改时间:距离本次密码修改时间最多可间隔的天数(99999表示永不过期)
密码提醒时间:距离密码即将到期提前警告的天数
密码到期后宽限时间:密码到期后账户还能使用的天数
账户有效期:该账户可使用的日期
保留区域:保留将来可能增加的区域
/etc/group
group_name:password:GID:user_list
组名
组密码:普通用户加入某个组时需要的密码(不推荐设置密码)
GID:组ID
组成员:“,”作为分隔符
/etc/gshadow
group_name:encrypted_password:administrators:members
组名
组密码
组管理员(组长)
组成员:“,”作为分隔符
/etc/default/useradd
GROUP=100 创建用户无指定组时默认所属的组users
HOME=/home 创建用户默认家目录路径
INACTIVE=-1 创建用户时默认没有宽限时间
EXPIRE= 创建用户时默认有效期
SHELL=/bin/bash 创建用户时默认shell类型
SKEL=/etc/skel 创建用户时家目录模板
CREATE_MAIL_SPOOL=yes 创建用户时默认创建邮箱
文件操作
vipw 等同于vi /etc/passwd
vigr 等同于vi /etc/group
pwck 检查passwd文件格式错误
grpck 检查group文件格式错误
用户与组的管理命令
用户管理命令及常用选项:
useradd
etc/default/useradd存放创建用户时的默认信息
-u 指定uid(生产环境中多台服务器保证程序是同一UID)
-o 不检查UID的唯一性,需配合-u使用(不建议UID一样)
-g 创建用户时指定主组
-c 创建用户时添加描述
-d 创建用户时指定家目录路径,二层目录(生产环境中创建给服务用的账户可能会用到)
-s 创建用户时指定shell类型/etc/shells
-r 创建系统用户(默认不创建家目录)
-m 强行创建家目录,用于系统用户,配合-r使用(生产环境中为服务生成系统用户)-M 强行不创建家目录,用于普通用户
-G 创建用户时加入到多个辅助组里,多个辅助组用“,”分开
-N 创建一个用户名和主组名不同的用户,默认users作为主组
-p 创建用户添加密码(不建议此种方式添加口令,口令会在shadow文件中明文)
usermod
-u 修改UID
-g 修改GID(组需存在)
-G 修改辅助组(会将原来的辅助组覆盖),如果要保留原辅助组配合-a使用
-s 新的默认shell
-c 新的注释信息
-d 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项(-m -d有顺序)
-l 新的用户名
-L 用户加锁
-U 用户解锁(centos6以后禁止此方式解锁)
userdel
- -r 删除用户的所有文件,家目录及邮箱(工作中不建议用,建议保留数据)
组帐号维护命令及常用选项
groupadd
-g 指明GID号创建组
-r 创建系统组group(centos6:ID<500、centos7:ID<1000)
groupmod
-n 新的组名
-g 新的GID
groupdel 删除组(前提没有用户以此组为主组)
groupmems 查看指定组的成员
-g 更改为指定组(只有root)
-a 指定用户加入组
-d 从组中删除用户
-p 从组中清除所有成员
-l 显示组成员列表(读取的/etc/group文件中对应组的最后一个字段的全部内容)
gpasswd 给组添加口令
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-A user1,user2… 设置有管理权限的用户列表(设置组管理员)