用户
Linux系统通过用户的uid号码和用户密码登录系统中,管理系统服务程序、数据
用户组
Linux中可以将一些需要相同权限用户加入到一个用户组,用户组是通过GroupID(GID)来唯一标识的
组名 | pid | 作用 |
---|---|---|
管理员组 | root组的pid为0 | 可以通过给root组设置权限来给组内的用户赋予权限 |
系统组 | 1-999 | 对守护进程获取资源进行权限分配 |
普通组 | 1000+ | 给用户使用 |
用户和用户组的关系
- 用户的主要组:用户必须属于一个且只有一个主组,默认创建用户时会自动创建和用户名同名的组,作为用户的主要组,由于此组中只有一个用户,又成为私有组
- 用户的附加组:一个用户可以属于0个或多个辅助组,附属组
用户组:把对文件又相同权限功能的用户划分为一个组,同一对数据进行管理
1对1 一个用户只属于一个用户组
1对多 一个用户可以属于多个用户组
多对1 多个用户可以属于一个用户组
多对多 多个用户可以属于多个用户组
用户和用户组的配置文件
passwd文件
/etc/passwd文件保存Linux系统用户属性配置信息,passwd文件实际内容如下
passwd文件每一行表示一个用户属性信息,以":"划分7列
第一列 用户名
第二列 用户密码信息,centos7版本为了系统安全,把用户密码记录在/etc/shadow文件,这里显示为X
第三列 用户的uid信息
第四列 用户组的gid信息
第五列 对该用户注释说明信息,如:mysql用户(manager datebase user),后面有命令可以设置
第六列 用户的家目录信息
第七列 用户登录系统的shell解释器
root用户和创建新用户默认都是/bin/bash
系统用户使用是/sbin/nologin解释器, 无法登录系统
shadow文件
/etc/shadow文件保存Linux系统用户的密码信息,shadow文件实际内容如下
第一列 登录用名
第二列 用户密码:一般用sha512加密
第三列 从1970年1月1日起到密码最近一次被更改的时间
第四列 密码再过几天可以被变更(0表示随时可被变更)
第五列 密码再过几天必须被变更(99999表示永不过期)
第六列 密码过期前几天系统提醒用户(默认为一周)
第七列 密码过期几天后帐号会被锁定
第八列 从1970年1月1日算起,多少天后帐号失效第二列详细说明
1.此字段可能为空,在这种情况下,作为指定的登录身份验证不需要密码
2.以感叹号开头的密码字段或者星号,表示此用户被所锁定,无法通过密码登录系
密码的安全策略
- 足够长
- 使用数字、大写字母、小写字母及特殊字符中至少3种
- 使用随机密码
- 定期更换,不要使用最近层级使用过的密码
group文件
/etc/group文件保存系统用户组的属性信息,文件实际内容如下
第一列 群组名称:就是群组名称
第二列 群组密码:通常不需要设定,密码是被记录在 /etc/gshadow
第三列 GID:就是群组的 ID
第四列 以当前组为附加组的用户列表(分隔符为逗号)
gshadow文件
/etc/gshadow文件保存Linux系统用户组密码信息
第一列 用户组名称
第二列 群组密码
第三列 组管理员,更改组密码和增删用户组成员
第四列 以当前组为附加组的用户列表:多个用户间用逗号分隔
用户和用户组管理命令
用户
创建用户:useradd
语法如下
useradd 选项 用户名
基本选项
useradd -u #指定该用户的UID
useradd -o #配合-u 选项,不检查UID的唯一性
useradd -d #指定宿主目录,默认为 /home/用户名
useradd -g #指定用户所属主组(必须已存在)
useradd -G #指定用户所属的附加组(必须已存在)
useradd -N #不单独创建私用组做主组,使用users组做主组
useradd -m #用户目录如不存在则自动建立
useradd -M #不为用户建立并初始化宿主目录,优先于/etc/login.defs文件的设定
useradd -r #创建系统用户,但使用shell解释器是/bin/bash
useradd -s #指定用户的登录Shell
useradd -D #查看创建用户的/etc/default/useradd的配置内容
修改用户属性:usermod
语法如下
usermod 选项 用户名
usermod -u UID #修改用户UID
usermod -g GID #修改用户主组
usermod -G GROUP1 #新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
usermod -s SHELL #新的默认SHELL
usermod -c 'COMMENT' #新的注释信息
usermod -d HOME #新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
usermod -l login_name #新的名字
usermod -L #lock指定用户,在/etc/shadow 密码栏的增加 !
usermod -U #unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
usermod -e YYYY-MM-DD #指明用户账号过期日期
usermod -f INACTIVE #设定非活动期限,即宽限期
删除用户userdel
语法如下
userdel 选项 用户名
userdel #不加参数删除用户,不会删除用户的家目录文件和邮件文件
userdel -f, --force #强制删除用户
userdel -r, --remove #删除用户家目录和用户邮件服务mail
查看用户相关的id信息
id -u #显示UID
id -g #显示GID
id -G #显示用户所属的私有组的ID
设置用户密码passwd
passwd 选项 用户名
passwd -d #删除指定用户密码
passwd -l #锁定指定用户
passwd -u #解锁指定用户
passwd -e #强制用户下次登录修改密码, 设置后shadow文件第三字段为0 *****
passwd -f #强制操作
passwd -n mindays #指定用户的密码最短使用期限
passwd -x maxdays #指定用户的密码最大使用期限
passwd -w warndays #提前多少天开始警告更改密码
passwd -i inactivedays #非活动期限
passwd --stdin #免交互修改用户密码, 从标准输入接收用户密码,Ubuntu无此选项 *****
用户组
创建用户组groupadd
语法如下
groupadd 选项 组名
groupadd -g #创建用户组指定GID,除非指定-o选项,否则ID值必须是唯一的数字
groupadd -r #创建系统组
修改用户组groupmod
语法如下
groupmod 选项 组名
groupmod -n group_name #修改用户组名称
groupmod -g GID #新的GID
查看用户的用户组groups
语法如下
groups 用户名
删除用户组groupdel
语法如下
groupdel 选项 组名
groupdel f, --force #强制删除,即使是用户的主组也强制删除组
更改用户组密码gpasswd
gpasswd命令可以更改组密码,也可以修改附加组的成员关系
语法如下
gpasswd 选项 组名
gpasswd #设置用户组密码
gpasswd -a #将user添加至指定组中
gpasswd -d #移除用户
gpasswd -A #设置用户组的管理员用户
gpasswd -r #删除用户组密码
管理用户组groupmems
groupmems可以管理附加组的成员关系,同gpasswd命令,语法如下
groupmes -g #指定查看的用户组
groupmes -a #指定用户加入组
groupmes -d #从组中删除用户
groupmes -p #从组中清除所有成员
groupmes -l #显示组成员列表
总结
到这用户和用户组的基本介绍就结束了,一些基本创建删除语法就完成了,博主准备下一篇给大家讲一下文件权限的管理,谢谢大家!