Linux用户和用户组管理概述
简介
Linux通过把用户分为三个基本组user、group、other来分分配基本的权限:
用户通过/etc/passwd通过用户名来获取用户uid,通过etc/group来获取用户所属组和附加组gid,系统只通过ID号来识别用户。
1、用户账号UID和GID
用户账号UID信息和主组信息存放在/etc/passwd中,密码加密存放在/etc/shadow文件中,其中0是root用户,1-499(CentOS6)1-999(centos7)是系统用户,系统用户通常无法登陆只是为启动服务创建的,500~65535(centos6)或者1000~65535(centos7)是普通用户。
用户主组信息在/etc/passwd中,/etc/group中可以查看组ID和组中有哪些用户。
/etc/passwd文件结构
/etc/shadow文件结构
2、用户新建和管理
a.创建用户
[root@localhost tmp]
# useradd -u1600 -g1600 -G mageedu -d /home/yemei -s /bin/bash yemei
创建一个名为yemei的普通账户 uid1600 主组gid1600 附加组mageedu 家目录/home/yemei 指定登陆shell为bash
[root@localhost tmp]
# useradd -r -u256 -s /sbin/nologin rtkit
创建一个系统用户rtkit(-r指定系统用户),UID256,不登陆的账户必须指定shell为nologin
b、为用户设置权限
[root@localhost tmp]
# passwd -n1 -x42 -w7 -i17808 yemei
[root@localhost tmp]
# echo "yemei123456"|passwd --stdin yemei #密码需要保证长度和复杂度
Changing password
for
user yemei.
passwd
: all authentication tokens updated successfully.
[root@localhost tmp]
# passwd -e yemei
设置新用户yemei最多每天更改一次密码,密码最多使用42天,密码失效前7天提醒,账号有效期3个月(从1970年1月1开始的天数),为用户设置默认密码,强制第一次登陆时必须修改密码
c、用户权限修改
1)usermod更改passwd设置的属性
groupmems [options] [action]
options:
- g, -- group groupname 更改为指定组 (只有root)
Actions:
- a, -- add username 指定用户加入组
- d, -- delete username 从组中删除用户
- p, -- purge 从组中清除所有成员
- l, -- list 显示组成员列表(不会列出以目标组为主组的成员)
2)时间相关权限,除了上使用passwd命令外,还可以使用chage(change user password expiry)修改用户逾期时间属性
chage: change user passwd expiry infomation
-d 最近一次的修改时间
-E:过期时间-- expiredate EXPIRE_DATE
-I:非活动时间-- inactive INACTIVE
-m:最短使用时间mindays MIN_DAYS
-M:最长使用时间maxdays MAX_DAYS
-W:警告时间warndays WARN_DAYS
–l 显示密码策略
chage - d 0 tom 下一次登录强制重设密码 <==> passwd -e tom
chage - m 0 –M 42 –W 14 –I 7 tom
chage - E 2016- 09- 10 tom
d、删除用户
[root@localhost tmp]
# userdel -r yemo
删除用户和用户家目录(-r选项),通常不建议删除家目录,删除前先确认其中是否有重要文件。
f、锁定和解锁账户
锁定账户
usermod
-l username
#-l:lock
passwd
-l username
chage -E (一个过去的时间)username
手动更改/etc/shadow下密码字段前面加上!
解锁账户
usermod
-u username
#-u:unlock
passwd
-u username
chage -E (一个未来的时间)username
手动更改/etc/shadow下密码字段前面去掉!
3、用户组管理
a、增加用户组
使用useradd在不指定主组的时候,会自动创建和用户同名的组,作为用户的组,无法给用户添加不存在用户组。
groupadd增加用户组:
groupadd [OPTION]... group_name
-g: GID
-r: 创建系统组
b、设置组信息
设置主密码gpasswd
gpasswd密码用于非组用户零时使用newgrp和密码获得组身份权限(建议禁止,有安全风险,附加组用户可以临时替换成主组),使用方法同passwd。
groupmod 更改组名
groupmod [OPTION]... group_name
-g: 变更GID -o可以使用重复GID
-n: 更改组名
c、组成员管理管理
1)useradd创建用户时候添加用户到组
2)usermod使用参数同useradd修改主组和附加组
3)passwd更改用户主组和附加组
4) gpasswd增删组中用户
gpasswd [OPTION] GROUP 修改组密码
- a user: 将user添加至指定组中
- d user: 从指定组中移除用户 user
- A user1,user2,...: 设置有管理权限的用户列表
5)groupmems更改组用户
groupmems [options] [action]
options:
- g, -- group groupname 更改为指定组 (只有root)
Actions:
- a, -- add username 指定用户加入组
- d, -- delete username 从组中删除用户
- p, -- purge 从组中清除所有成员
- l, -- list 显示组成员列表(不会列出以目标组为主组的成员)