RHEL四(管理本地用户和组以及本地密码策略)

来源:互联网 发布:哪种编程语言最好学 编辑:程序博客网 时间:2024/05/23 01:15

在linux中,用户可以分为几类:超级用户、系统用户、普通用户。超级用户uid=0,系统用户在rhel5和rhel6中uid=1-499,rhel7中,uid=1-200表示系统自带用户,201-999表示其他系统用户,普通用户在rhel5和rhel6中是500-60000,在rhel7中从1000开始。

用户相关文件:

/etc/passwd 存放用户和用户对应的UID

[root@desktop0 content]# grep ^root /etc/passwd
root:x:0:0:root:/root:/bin/bash

列1、用户名

    2、密码占位符

    3、用户UID

    4、用户GID

    5、注释

    6、用户家目录

    7、用户使用的shell


/etc/shadow 存放用户密码信息

[root@desktop0 content]# grep ^root /etc/shadow
root:$6$PFwvgEDl$q/7OKjywR4XEOT8VN.2s/OrfdvhmauyLkJHY1GYvkguClUilvwFrKdMniBlJzl8bxViudknWPptv/81Nz3NfM/:16442:0:99999:7:::

列1、用户名

    2、加密密码

    3、用户最后一次修改密码的时间,从1970-1-1开始计算,单位天

    4、最短修改密码的间隔时间,单位天,0代表不限制,随时可以修改密码

    5、密码的有效期,单位天,99999表示永不过期

    6、密码过期前多少天提示

    最后3个冒号后是空的,这里使用a、b、c代替

    a、密码过期后多少天不能使用

    b、距离1970-1-1号到某天的天数之后,账号过期

    c、保留


/etc/group 存放当前系统所有用户组信息

group:   x:                   123:          abc,def,xyz

组名    密码占位符    组编号      组中用户列表

/etc/gshadow 存放当前系统中用户组的密码信息

group:   *:                   :  abc,def,xyz

组名    密码占位符(*或!表示为空)    组管理者      组中用户列表


/etc/default/useradd 创建用户时会读取该配置文件,如果没有指定选项,该文件中默认指定了用户的GID,家目录,shell等信息

/etc/login.defs 密码策略文件,为用户分配密码时会读取该配置文件,如果没有指定选项,该文件中默认指定了密码的有效期等信息


如何登录主机:

当系统出现login画面的时候,提示用户输入用户名和密码,linux会:

1、先找到/etc/passwd,判断用户是否存在,如果没有则退出,如果有,它会将用户所对应的UID和GID读取出来,并将该用户的家目录和SHELL一起读取出来

2、然后到/etc/shadow中核对密码表,查找对应用户的UID,然后核对刚才输入的密码

3、如果一切相符,进入shell阶段


创建用户:useradd [-选项]  [选项值] 用户名

useradd rheluser1 直接这样创建,系统会创建一个同名的组并让该用户属于这个组,使用命令id rheluser1可以查看用户的UID、GID、和组名

常用选项:

-u:指明用户uid

-g:指明用户所属组,可以是GID也可以是组名

-G:指明用户还属于其他组

-s:指明用户使用的shell,sbin/nologin表示不允许登录

-c:指明注释信息

-d:指明用户家目录

创建用户执行的步骤:

1、修改/etc/passwd

2、修改/etc/shadow

3、修改/etc/group

4、修改/etc/gshadow

5、创建家目录

6、拷贝一些桌面环境变量 cp etc/skel* /home/username

7、将用户家目录的拥有者和组  chown username:usergroup /home/username


创建组:groupadd [-选项] [选项值]  组名

修改用户:usermode  [-选项] [选项值]  用户名

密码策略:

使用man 3 crypt可以查看到密码策略:

      ID  | Method
              ─────────────────────────────────────────────────────────
              1  
 | MD5
              2a
 | Blowfish (not in mainline glibc; added in some
                 
   | Linux distributions)
              5  
  | SHA-256 (since glibc 2.7)
              6  
  | SHA-512 (since glibc 2.7)

使用grep ^root /etc/shadow查看密码:

:$6$PFwvgEDl$q/7OKjywR4XEOT8VN.2s/OrfdvhmauyLkJHY1GYvkguClUilvwFrKdMniBlJzl8bxViudknWPptv/81Nz3NfM/

可以分为3段,以$进行分割,三段间的值这里用A、B、C表示

$A$B$C

A-->ID,散列算法

B-->Salt,盐值,系统生成的一个随机串

C-->salt+明文密码封装而成的密文密码

可以安装一个工具 yum install authconfig-gtk krb5-workstation sssd -y,然后使用system-config-authentication命令来修改密码加密方式,在第二个选项卡Advanced Options(高级配置)中,修改加密方式为md5。然后修改密码,再去查看/etc/shadow,root的密码散列算法ID变成了1。这时候,可以将密码穹取出来,使用openssl -table -l -salt 'B对应的字符串'  -stdin < /usr/share/dict/words | grep 'C对应的字符串',就能查询出对应的密码明文了!


su:切换用户

su -student  表示切换并登录用户

加载的文件:/etc/profile、  /etc/profile.d/*、  ~/.bash_profile、  ~/.bashsrc、  /etc/bashsrc

su student   表示切换但未登录用户

加载的文件:~/.bashsrc、   /etc/bashsrc、  /etc/profile.d/*

文件说明:

/etc/profile和 /etc/profile.d/*:全局设置文件,定义全局环境变量(只有当用户登录的时候加载一次)

/etc/bashsrc:全局设置文件,定义命令别名(每次打开shell就加载一次)

~/.bash_profile:用户私有配置文件,用户可以定义自己的环境变量(只有当用户登录的时候才会加载一次)

~/.bashsrc:用户私有配置文件,定义私有别名

0 0