Linux是一个可以实现多用户登录的操作系统,允许多个用户同时登陆到系统上使用资源。系统根据账户来区分每个用户的文件、进程、任务、给每个用户提供特定的工作环境。
一、用户组的基本概念
系统在解析用户的时候,并不能直接的去解析用户名 ,但是它你让那个够识别解析ID号,UID,GID
1、UID
管理员:0
普通用户:1-65535
系统用户:1-499(centos6) ,1-999(centos7)
登录用户:500-60000(centos6),1000-60000(centos7)
名称解析:username<------>UID
根据名称解析库: /etc/passwd
2、GID
管理员组:0
普通用户组:1-65535
系统用户组:1-499(centos6),1-999(centos7)
登录用户组:500-60000)(centos6),1000-60000(centos7)
名称解析:groupname<------>gid
名称解析库:/etc/group
组类别:用户基本组、用户附加组
3、密码策略
1、使用随机密码
2、最短长度不少于8位
3、应该使用大小写字母、数字、标点符号中至少三类
4、定期更换
4、加密算法
对称加密:加密和解密使用的是同一个密文
非对称加密,密钥对,
算法:MD5,sha128,sha256
二、用户和组的管理
安全上下文:进程以其发起者的身份运行;进程对文件的访问权限,取决于发起此进程的用户的权限
groupadd:添加组
用法:groupadd [选项] group
选项
-g GID | 指定GID,默认创建时无法创建系统用户组 |
---|---|
-r | 创建系统组 |
groupmod:修改组
选项
-g GID | 修改GID |
---|---|
-n newgroupname | 修改组名 |
groupdel:删除组
goupdel groupname
useradd:添加用户
选项
-u UID | 指定UID |
---|---|
-g GID | 指定基本组ID,此组得事先存在 |
-G | 指明附加组 |
-c | 添加注释信息 |
-d | 指定家目录,复制/etc/skel并重命名实现 |
-s | 指定默认shell |
-r | 创建系统用户 |
-D | 显示创建用户的默认配置 |
举例
# useradd -u 5000 -g 500 -G jerry -c "hello world" -s /bin/sh tom
usermod:修改用户属性
选项
-u UID | 指定UID |
---|---|
-g GID | 指定基本组ID,此组得事先存在 |
-G | 指明附加组 |
-a | 追加新的附加组 |
-c | 添加注释信息 |
-d | 指定家目录,复制/etc/skel并重命名实现 |
-m | 与-d一起使用,把原来的家目录移动为新的家目录 |
-l | 修改用户名 |
-s | 指定默认shell |
-L | 锁定用户 |
-U | 解锁用户 |
举例
修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问
# usermod -m -d /var/tmp/gentoo gentoo
userdel:删除用户
-r | 和家目录一并删除 |
---|
passwd:创建或者修改用户密码
- passwd:修改自己的密码
- passwd username:修改指定用户密码,只有root有权限
选项
-l | 锁定用户 |
---|---|
-u | 解锁用户 |
-d | 清除密码串, |
-e date | 过期期限 |
-n days | 最短使用期限 |
-x days | 最长使用期限 |
-w days | 告警时间 |
- -stdin | 非交互式创建密码 |
例如
echo "password" | passwd --stdin username
gpasswd:创建或修改组密码
gpasswd groupname
选项
-a username | 向组中添加用户 |
---|---|
-d username | 从组中删除用户 |
id:显示用户的ID号
-u | 显示UID |
---|---|
-g | 显示GID |
-G | 显示所属组ID |
-n | 需要和-u -g -G 配合使用显示名字而非ID |
chage:更改用户密码过期信息
用法
chage options 登录名
选项
-d date | 指定密码最后修改时间 |
---|---|
-E date | 密码到期日期,过了时间后帐号不可用 |
-w days | 告警时间 |
-m days | 密码可以更改的最小天数 |
-M days | 密码有效的最大天数 |
解析库文件
/etc/passwd 7个字段
root:x:0:0:root:/root:/bin/bash片
以 :为分隔符
1、用户名,长度不要超过8个字符,数字字母组成
2、口令:passwd ,shawod ,使用x占位符
3、用户的标识符UID
4、用户组的标识符GID
5、注释信息
6、用户的家目录
7、登录shell
密码信息
/etc/shadow
root:$6$rxtW5qBw$yNHpzQxqF61aBP.4EgWwdZG32DiaRg537VnUFV0x947zXHs3VLgEiToxwCQB1YsdqgTBlaQuP.gYirQQABoYB.:18312:0:99999:7:::
1、登录名
2、用户的加密口令,*,被锁定,!!代表过期,6加密算法,rxtW5qBw加密因子
3、口令最后一次修改时间
4、两次修改口令最小的时间间隔
5、口令有效的最大天数
6、告警时间
组信息
/etc/group
root:x:0:
1、组名
2、口令
3、GID
4、以他为附加组的组内用户
练习
1、创建用户gentoo,UID为4001,基本组为gentoo,附加组为distro(GID为5000)和peguin(GID为5001);
# groupadd -g 5000 distro
# groupadd -g 5001 peguin
# useradd -u 4001 -G distro,peguin gentoo
2、创建用户fedora,其注释信息为"Fedora Core",默认shell为/bin/tcsh;
# useradd -c "Fedora Core" -s /bin/tcsh fedora
3、修改gentoo用户的家目录为/var/tmp/gentoo;要求其原有文件仍能被用户访问;
# usermod -m -d /var/tmp/gentoo gentoo
4、为gentoo新增附加组netadmin;
# groupadd netadmin
# usermod -aG netadmin gentoo