用户、组的基本概念:
用户和组:
系统上每一个进程都是由一个特定的用户发起。
系统上的文件都是由特定的用户拥有。
用户对系统上的文件访问时 ,受到权限控制
与运行中的进程相关联的用户确定该进程可访问的文件和目录
用户:
用户的标识符,密码
用户的分类:
管理员,
普通用户
组:
也称用户组、用户容器
1. 用户和组的标识符:
UID:属主的标识符
0 - 65535(一共可以创建65535个用户)
管理员用户:root:0
普通用户:1-65535
系统用户:CentOS6:1-499
CentOS7:1-999
登录用户:CentOS6:500-65535
CentOS7:1000-65535
名称解析:名称转换
用户名--------UID
根据名称解析库 : /etc/passwd
GID:属组的标识符
0-65535(划分与UID一致)
管理员组:root:0
普通用户组:1-65535
系统用户:CentOS6:1-499
CentOS7:1-999
登录用户:CentOS6:500-65535
CentOS7:1000-65535
名称解析:
用户组名--------GID
名称解析库 : /etc/group
组类别:
用户的基本组
用户的附加组
组类别:
私有组:组名和用户名一样,且只包含一个用户
公共组:组内包含多个用户
用户组group:就是具有相同特征的用户的集合
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
//uid和gid就是标识符
认证信息:密码 (用户密码保存在/etc/shadow 中 /etc/gshadow保存组密码)
密码策略:
1、使用随机密码
2、最短长度不低于8位
3、应该使用小写字母,大写字母,数字,标点符号四类中的至少三类
4、定期更换
加密算法:
对称加密:加密与解密使用同一密码
非对称加密:加密与解密使用同一对儿密匙
2、用户、组管理:
安全上下文:进程是以其发起者的身份运行,进程对文件的访问权限,取决于发起此进程的用户的权限。
groupadd:添加用户组:
结构: groupadd [options] group
选项:-g GID:指定组ID,默认情况下是上一个组ID+1
-r:创建一个系统组
groupmod:修改组属性
结构: groupadd [options] group
-g:修改组ID
-n:修改组名(重命名)
groupdel:删除组
结构:groupdel [options] GROUP
groupdel nebula
[root@localhost ~]# groupadd -g 1000 jerry
[root@localhost ~]# tail -1 /etc/group
jerry:x:1000:
[root@localhost ~]# tail -1 /etc/group
tom:x:1000:
useradd :创建用户
结构:useradd [options] LOGIN
-u:指定UID
-g:指定基本组ID
-G:指定用户的附加组,附加组事先要存在
-c:添加注释信息
-d:指定用户的家目录,通过复制/etc/skel目录,并改名
-s:指定用户的默认shell
-r:创建系统用户
useradd -D:显示创建用户的配置
useradd -D [options] :修改默认配置
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
//修改后的内容存储的路径
userdel:用户删除
userdel 登录名
-r:删除用户时一并删除家目录
usermod:修改用户属性
-u:修改用户ID
-g:修改用户的基本组
-G:修改用户的附加组
-c:修改注释信息
-d:修改家目录
-m:与-d选项一起使用,用于将原来家目录的文件移动到新的家目录
-a:与-G一起使用,追加用户的附加组
-l:修改用户名
-s:修改默认shell
-e:修改用户密码过期时间
-L:锁定用户密码
-U:解锁用户密码
[root@localhost ~]# usermod -u 1001 -c "modify user" -s /bin/bash -aG user2 -md /mnt/user3 -l user4 user3
[root@localhost ~]# usermod -e "Aug 16,2019" john
//将John用户密码过期时间
[root@localhost ~]# chage -l John
最近一次密码修改时间 :8月 14, 2019
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :8月 16, 2019
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
/etc/passwd:存储用户的基本信息
root: x:0:0:root:/root:/bin/bash
用户名:密码(x是占位符):用户标识符:组标识符:注释信息:主目录(也称家目录):登录shell
passwd:用户密码
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays]
[-w warndays] [-i inactivedays] [-S] [--stdin] [username]
1、passwd:直接修改自己的密码
2、passwd username:修改指定用户的密码,仅root用户有此权限
-l:锁定用户
-d:清楚密码串
-e DATE:过期日期
-i DAYS:非活动期限(指该用户可以多久不使用,但依旧存在)
-n DAYS:密码最短使用期限
-x DAYS:密码最长使用期限
-w DAYS:告警期限(告诉你该密码还有多久过期)
–stdin :非交互式创建密码
echo “PASSWORD” |passwd --stdin username
gpassed:组密码(保存在/etc/gshadow中)
-a username:向组内添加用户
-d username:从组内删除用户
newgrp:用来做临时切换指定的组为基本组
chage:更改密码过期信息
-d:指定密码最后修改日期
-E:密码到期日期,
-w:密码过期前的警告天数
-m:密码可以更改的最小天数
-M:密码保持有效的最大天数
[root@localhost ~]# chage -l John
最近一次密码修改时间 :8月 14, 2019
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :8月 16, 2019
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
id:显示用户的真和有效ID
-u:显示 UID
-g:显示GID
-G:显示用户的所有组
-n:显示名字
/etc/shadow:存储用户密码信息
root:$6$cPLjOIAuIwObXHI.$Ev6aLd95N98DVK7KNZ6zl5IfUOvy3F3YS3uwjUyplboCL/idy90DxZnS0sOAVa/f5Yr2Nz9zof3EkZx.IizgA.::0:99999:7:::
登录名:加密口令:最后一次修改时间:最小时间间隔(0):最大时间间隔(99999):警告时间(7):不活动时间:失效时间:(预留)标志
最后一次修改时间:表示从某一个时间点开始,到用户最后一次修改口令的时间天数,一般情况下从1970.1.1开始
最小时间间隔:两次修改口令之间所需的最小天数
最大时间间隔:口令保持有效的最大天数
警告时间:从系统开始警告用户到用户密码正式失效之间的天数
不活动时间:指用户没有登录活动单账号仍然保持有效的最大天数
失效时间:该用户使用权有一期限,到时间没有使用权
加密口令: 6 加 密 算 法 , 6加密算法, 6加密算法,cPLjOIAuIwObXHI.$:加密因子
小练习:
1、创建用户gentoo.UID 为4001,基本组为gentoo,附加组为jerry(jerry的GID为5000)
[root@localhost ~]# groupadd -g 10003 jerry
[root@localhost ~]# groupadd -g 10001 suse
[root@localhost ~]# user -u 40001 -g suse -G jerry gentoo
[root@localhost ~]# tail -1 /etc/passwd
federa:x:40002:40002:federa core:/home/federa:/bin/bash
[root@localhost ~]# id gentoo
uid=40001(gentoo) gid=10003(suse) groups=10003(suse),50000(jerry)
2、创建用户federa,其注释信息为“federa core”,默认shell为/bin/csh
[root@localhost ~]# useradd -c "federa core" -s /bin/csh federa
[root@localhost ~]# tail /etc/passwd
federa:x:40002:40002:federa core:/home/federa:/bin/bash
3、修改gentoo用户家目录,目录为/tmp/gentoo
[root@localhost ~]# usermod -d /tmp/gentoo gentoo
[root@localhost ~]# tail /etc/passwd
gentoo:x:4001:1001::/tmp/gentoo:/bin/bash
4、为gentoo 增加附加组 natasha
[root@localhost ~]# groupadd natasha
[root@localhost ~]# username -aG natasha gentoo
[root@localhost ~]# id gentoo
uid=4001(gentoo) gid=1001(suse)
groups=1001(suse),5000(jerry),5001(natasha)
5、非交互式修改gentoo密码为gentoo