1.资源分配规则:
Authentication:认证—>Authorization:授权Accouting|Audition:审计
2.用户user:
(1.)用户访问文件是带着令牌token,identity进行验证的
(2.)Linux用户中每个用户对应一个UID
(3.)管理员的用户名是:root,UID是0
(4.)普通用户的UID:1-65535
系统用户:1-499(CentOS 6)1-999(CentOS 7)
系统用户是对守护进程获取资源进行权限分配
登陆用户:500(CentOS6)+,1000+
交互式登陆
3.组group:
(1.)Linux组中每个组都对应一个组名和一个GID
(2.)管理员组是:root,组id是0
(3.)普通组:
系统组:1-499,1-999
普通组:500+,1000+
4.linux安全上下文:
(1.)运行中的程序:进程(process)以进程发起者的身份运行:
root:/bin/cat
mage:/bin/cat
(2.)进程能访问资源的权限取决于进程运行者的身份。
5.linux组的类别:
(1.)用户的主要组(主组):
用户必须属于一个且只有一个主组
组名同用户名,且仅包含一个用户:私有组
(2.)用户的附加组(辅助组)
一个用户可以属于零个或多个辅助组(secondary group)
几个查看组信息的命令:
groups bin查看用户的所属主
id bin
id -u tom查看用户的UID
id -g tom查看用户的组id
6. 用户和组的配置文件:
Linux用户和组的主要配置文件:
(1.)/etc/passwd:用户及其相关属性信息(名称,UID,GID等等)
文件格式:
root:x:0:0:root:/root:/bin/bash
第一个字段是login name ;第二个字段是passwd;第三个字段是UID,第四个字段是GID;第五个字段是用户的属性信息;第六个字段是用户的home directory;第七个字段是用户的默认shell;
(2.)/etc/shadow:用户密码及其相关属性
文件格式:
root:$6$hofHDt7/$D4VYEL0qL7a.UiB6qRQePw6IFIXdTVoGYoqGLCExia0ln6OPuJQkXS27wEhRFLck.94LWbOo.QlnLO6l8ZpeR1:17007:0:99999:7:::
登陆用户,用户加密后的密码,密码修改从1970至今的过去的天数,密码使用最短时间,密码使用最长时间,密码过期前提醒时间,密码过期后几天后账户被锁定,自1970后多少天后账户失效。
(3.)/etc/group:用户及其属性信息
文件格式:
haldaemon:x:68:haldaemon
第一个字段是组名;第二个字段是组密码;第三个字段是组id;最后一个字段是组里的用户
(4.)/etc/gshadow:组密码及其相关属性
文件格式
bin:::bin,daemon:群组名称,群组密码,组管理员列表,以当前组为附加组的用户列表。
7.关于/etc/passwd和/etc/shadow有影响的几个命令
(1)pwconv:转换—把/etc/passwd中的密码字段转换位x,加密后的密码放在/etc/shadow中
(2)pwunconv:密码不转换为x,--加密后的密码直接放在/etc/paswd的第二个字段
(3)chfn添加描述信息
(4.)finger查看描述信息:初次使用可能需要安装finger的rpm包。
(5.)chsh :chsh -s /bin/csh wang:专门用来改用户的shell
(6)$5使用的是md5 128位 $6使用的是sha512 sha160位
(7)openssl rand -base64 20 生成随机数
(8)newgrp tom 临时切换主组为tom
8.密码加密:
(1.)加密机制:
加密:明文密文
解密:密文明文
(2.)单向加密:哈希算法,原文不同,密文必不同
相同算法定长输出,获得密文不可逆推出原始数据
雪崩效应:初始条件的微小改变,引起结果的巨大变化
md5:message digest, 128bits
sha1:secure hash algorithm,160bits
sha224:224bits
sha256:256bits
sha384:384bits
sha512:512bits
$5使用的是md5 128位 $6使用的是sha512 sha160位
(3.)更改加密算法 authconfig --passalgo=sha256 --update
(4)密码的复杂性策略:
使用数字、大写字母、小写字母及特殊字符中的至少3种
足够长
使用随机密码
定期更换;不要使用最近曾经使用过的密码
(5)密码期限
lastchang(-d),min days(-m),max days(-M),warn days(-w),password expiration date ,inctive days(-l);inactive days
9.文件操作命令:
vipw和vigr:修改/etc/passwd和/etc/group的命令。
pwck和grpck:对上述两个文件进行语法检查的命令。
10.用户和组管理命令
(1)用户管理命令
useradd
useradd [options] LOGIN
-u UID:[UID_MIN,UID_MAX]定义在/etc/login.defs
-o 配合-u选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c "COMMENT":用户的注释信息
-d HOME_DIR:以指定的路径(不存在)为家目录
-s SHELL:指明用户默认shell程序
可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]为用户指明附加组,组必须事先存在
-N 不创建私用组做主组,使用users组做主组
-r:创建系统用户CentOS 6:id<500,CentOS 7:id<1000
系统默认值设定:/etc/dafault/useradd文件中
显示或更改默认设置:
useradd -D
useradd -D -s SHELL
usermod
userdel
(2)组账号维护命令
groupadd
groupmod
groupdel
11.练习:(1)创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
useradd -G bin,root -s /bin/csh -c "Gentoo DIstribution" gentoo
(2)创建下面的用户、组和组成员关系
名字为admins 的组
用户natasha,使用admins 作为附属组
用户harry,也使用admins 作为附属组
用户sarah,不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos
groupadd admins;useradd -G admins natasha;useradd -G harry ;useradd -s /sbin/nologin;echo "centos" |passwd --stdin natasha;echo "centos" |passwd --stdin harry;echo "centos" |passwd --stdin sarah
12.新建用户的相关文件和命令:
/etc/dafault/useradd
/etc/skel/* 用户创建时的个人配置信息拷贝目录
/etc/login.defs:登陆用户创建时的一些规定和限制
批量创建用户命令:newusers passwd格式文件
批量修改用户口令:chpasswd:使用是由:用户:密码这样格式的文件
cat passwd.txt |chpasswd
13.用户属性修改:
usermod [OPTION] login
-u UID:新UID
-g GID :新基本组
-G GROUP1[GROUP2,...]新附加组,原附加组将被覆盖,如果想要保留原附加组,同时使用-a选项
-s SHELL:新的默认shell;
-c "adhfjds":新的注释信息
-d HOME:新的家目录不会自动创建,原家目录里的文件不会自动迁移,若要创建家目录并迁移个人数据,加上-m选项
-l login_name:新的名字;
-L:lock指定用户,在/etc/shadow密码栏增加!,锁定用户
-U:unlock指定用户,将/etc/shadow密码栏的!拿掉
-e yyyy-MM-DD:指定账户过期日期;
-f INACTIVE:设定非活动期限;
14.删除用户:
userdel [OPTION] ... login
-r:删除用户家目录;
15.查看用户相关的id信息:
id [OPTION]...[USER]
-u:UID
-g:GID
-G:GROUP
-n:Name;需和上面的选项一起使用
16.切换用户或以其它用户身份执行命令
su [options...] [-] [user[args...]]
切换用户的方式:
su UserName:非登陆式切换,即不会读取目标用户的配置文件,不改变当前工作目录
su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
root su至其它用户无需密码;非root用户切换时需要密码
换个身份执行命令:
su [-] UserName -c 'COMMAND'
选项-l --login:
su -l UserName 相当于 su - UserName
17.设置密码:
passwd [OPTIONS] UserName 修改指定用户的密码,仅root可以修改其它用户密码
passwd:修改自己的密码
常用选项:
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登陆修改密码
-n mindays:指定密码最短使用期限
-x maxdays:密码最大使用期限
-w warndays:提前多少天开始提醒修改密码
-i inactivedays:非活动期限
--stdin:从标准输入接收用户密码
echo "PASSWORD" | passwd --stdin USERNAME
18.修改用户密码策略:
chage [OPTION]... LOGIN
-d:last_day 最后修改日期
-E:--expiredate EXPIRE_DATE 过期日期
-I:--inactive INACTIVE 非活跃期
-m:--mindays MIN_DAYS
-M:--maxdays MAX_DAYS
-W:--warndays WARN_DAYS
-l:显示密码策略
下次登陆强制重设密码:
chage -d 0 tom
chage -m 0 -M 42 -W 14 -I 7 tom
chage -E 2016-19-10 tom
19.用户相关的其它命令:
chfn 指定个人信息
chsh 指定shell :chsh -s /bin/csh ci:修改ci用户的shell为csh
finger:查看用户的注释信息:finger ci
20.组创建:
groupadd [OPTION]... group_name
-g GID:创建组的时候指明GID号;[GID_MIN,GID_MAX]
-r:创建系统组;
CentOS 6:ID<500
CentOS 7: ID<1000
21.修改和删除组
groupmod [OPTION]... group
-n group_name:新名字
-g GID :新的GID
组删除命令:groupdel
groupdel GROUP
22.更改组密码:
组密码:gpasswd
gpasswd [OPTION] GROUP
-a user:将user添加至指定组中;
-d user:从指定组中移除用户user
-A user1,user2,...:设置有管理权限的用户列表
newgrp命令:临时切换基本组
如果用户不属于此组,则需要组密码
23.更改和查看组成员
groupmems [options] [action]
options:
-g,--group groupname 更改为指定组(只有root)
Actions:
-a,--add username指定用户加入组
-d,--delete username从组中删除用户
-p,--purge从组中清除所有成员
-l,--list 显示组成员列表
groups [OPTION].[USERNAME]...查看用户所属组列表:groups ci