用户、组和权限管理

命令修改用户的口令:# echo centos | passwd –stdin chesfer(用户名)

如果不想看修改成功的信息:# echo centos | passwd –stdin chesfer(用户名) > /dev/null

 

 

本章节的内容:

了解Linux的安全模型

了解用户帐号和组群帐号的目的

用户和组管理命令

理解并设置文件权限

默认权限

特殊权限

ACL

 

一、认识Linux3A安全(资源分派)

Authentication:认证

Authorization:授权

  Accouting|Audition:审计

二、用户(管理员和普通用户):

三、组(管理组和普通用组): 

四、了解Linux的安全上下文:

运行中的程序:进程(process)

以进程发起者的身份运行:root:/bin/cat mage: /bin/cat

  进程所能够访问资源的权限取决于进程的运行者的身份

五、组的类别:

六、Linux用户和组的主要配置文件:

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)

/etc/group:组及其属性信息

/etc/shadow:用户密码及其相关属性

  /etc/gshadow:组密码及其相关属性

 

七、passwd格式:

[login name:登录用名(wang][passwd:密码(x)][UID:用户身份编号(1000)][GID:登录默认所在组编号(1000)][GECOS:用户全名或注释][home directory:用户主目录(/home/wang)][shell:用户默认使用shell (/bin/bash)]

查看用户的passwd# cat/etc/passwd

查看指定用户的passwd:命令#getentpasswd username

/etc/passwd 是以前存放密码的文件;新版的操作系统处于安全性上的考虑,将密码的文件放在了/etc/shadow;如果需要更改会到以前的存放位置,则使用命令# pwunconv,恢复新的密码存放位置命令:# pwconv

 

###

更改用户的描述信息:命令#chfnusername

查看用户信息的描述,命令:#finger username

更改用户的shell,命令:# chsh -s/bin/csh username

###

 

  • shadow文件格式:

[登录用名][用户密码:一般用sha512加密][197011日起到密码最近一次被更改的时间][密码再过几天可以被变更(0表示随时可被变更)][密码几天后必须被变更(99999表示永不过期)][密码过期前几天系统提醒用户(默认为一周)][密码过期几天后帐号会被锁定][197011日算起,多少天后帐号失效。]

查看用户的shadow# cat/etc/shadow

查看指定用户的shadow:命令# getentshadow username

 密码期限拓扑图:

 

九、密码加密:

1、加密机制:加密:明文--> 密文;解密:密文--> 明文

2、单向加密:哈希算法,原文不同,密文必不同

3、相同算法定长输出,获得密文不可逆推出原始数据

4、雪崩效应:初始条件的微小改变,引起结果的巨大改变

5、加密算法类型:

md5: message digest, 128bits

sha1: secure hash algorithm, 160bits

sha224: 224bits

sha256: 256bits

sha384: 384bits

sha512: 512bits

  6、更改加密算法:# authconfig --passalgo=sha256 –update(不会即刻生效,需要用户重新更改密码后方可生效)

7、密码的复杂性策略:使用数字、大、下写字母及特殊字符中至少3种;足够长;使用随机密码;定期更换;不要使用最近曾经使用过的密码

  8、生成随机数做密码:命令# openssl rand -base64 20

   生成没有特殊符号的随机数:命令# openssl rand -base64 20 | tr -d [[:punct:]]

 

 

十、Group的文件格式:

[群组名称:就是群组名称][群组密码:通常不需要设定,密码是被记录在/etc/gshadow][GID:就是群组的ID][以当前组为附加组的用户列表(分隔符为逗号)]

十一、gshadow的文件格式:

[群组名称:就是群组名称][群组密码][组管理员列表:组管理员的列表,更改组密码和成员][以当前组为附加组的用户列表:(分隔符为逗号)]

查看命令:#getent  gshadow bin

组名:组密码:组管理员账号:组的成员(多个成员使用,隔开)

临时性更改用户组:命令#newgrpbin

 

十二、文件操作:

vipwvigr  修改passwdgshadow配置文件

pwckgrpck:检查passwdgshadow的修改是否格式错误:

 

十三、 用户和组的管理命令:

    用户管理命令:useraddusermoduserdel

    组帐号维护命令:groupaddgroupmodgroupdel

 

  用户创建: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<500CentOS 7: ID<1000

 

默认值设定:/etc/default/useradd文件中

显示或更改默认设置:useradd -Duseradd -D -s SHELL

 

### 新用户创建使用的配置模板存放在/etc/skel下;新用户创建的默认属性模板存放在/etc/default/useradd ###

   

### 命令上锁用户:#usermod –Lusername;命令解锁用户:usermod -U username ####

 

 

 

作业;

1、创建用户gentoo,附加组为binroot,默认shell/bin/csh,注释信息为"GentooDistribution"

# useradd -G bin,root -s /bin/csh -c "Gentoo Distribution"Gentoo

 

2、创建下面的用户、组和组成员关系:名字为admins的组,用户natasha,使用admins 作为附属组,用户harry,也使用admins 作为附属组用户sarah,不可交互登录系统,且不是admins 的成员,natasha

harrysarah密码都是centos

# groupadd admins;useradd -G admins natasha;useradd -G admins harry;useradd -s /sbin/nologin -r sarah;echo"centos"|passwd --stdin natasha;echo "centos"|passwd--stdin harry;echo "centos"|passwd --stdin sarah