相关文件:
/etc/passwd 用户帐户信息。shell
/etc/shadow 安全用户帐户密码信息。安全
/etc/shadow- /etc/shadow 的备份文件。注意,此文件由 shadow 工具集使用,而不是全部的用户和密码管理工具都会使用bash
经常使用场景
[root@vms001 ~]# id abc #使用id命令,能够查看系统中是否存在此用户,也能够用来查看存在用户的ID
ide
[root@vms002 桌面]# system-config-users #图形界面下打开用户管理界面,打开的界面只能管理咱们的普通用户,不能管理root用户。
工具
[root@vms002 ~]# useradd bob -c 'bob ftp user' -s /sbin/nologin -d /bob -G users -G root -u 3000 #添加bob用户。-c 指定注释信息;-s 指定用户shell;-d 指定用户家目录,若是不指定的话默认是/home/bob;-g 指定用户加入组,用户必需要属于某一个组,若是不指定默认就会建立一个与用户同名的组;-G指定用户附属组;-u 指定用户ID
加密
[root@vms002 ~]# echo redhat | passwd --stdin bob #给bob用户设置密码。--stdin从标准输入读取令牌(只有根用户才能进行此操做);当咱们建立用户时候,若是没有指定密码,此时这个用户建立好以后是处于锁定状态的,没法登录用户,因此这里要使用passwd来设置密码。
code
[root@vms002 ~]# getent passwd bob #此命令与“cat /etc/passwd | grep bob”命令的输出是同样的
get
[root@vms002 ~]# passwd -S bob # -S报告已命名账号的密码状态(只有根用户才能进行此操做)
it
[root@vms002 ~]# usermod -c 'ftp ftp user bob' bob #修改用户属性。修改bob用户的注释信息
class
[root@vms002 ~]# usermod -s /sbin/bash bob #修改用户属性。修改bob用户的默认登陆shell
[root@vms002 ~]# usermod -d /home/abc/bob bob #修改用户属性。修改bob用户的家目录;要确保被修改的家目录存在,且之前家目录的文件都要copy到新的家目录中,才能保证该变了家目录的用户正常使用,由于被拷贝的文件里包含了环境变量等信息
[root@vms002 home]# groups bob #查看bob用户属于哪些用户组
[root@vms002 bob]# gpasswd -a bob bin #使用此命令能够将bob用户添加到 bin组
[root@vms002 bob]# gpasswd -d bob root #将bob用户从root组里边删除
[root@vms002 bob]# usermod -g root bob #g, --gid GROUP 制使用 GROUP 为新主组
[root@vms002 bob]# usermod -L bob #锁定用户bob,不影响root用户su到bob用户
[root@vms002 bob]# usermod -U bob #解锁bob用户
[root@vms002 bob]# chage -E 2019-12-21 bob #bob用户到2019年12月21日的时候会自动锁定
[root@vms002 bob]# chage -E 99999 bob #连续设置5个9,密码则永不过时
[root@vms002 bob]# chage -d 2018-11-12 bob #此命令用来修改一个时间,修改什么时间呢?修改的就是上次密码修改的时间值
[root@vms002 bob]# chage -m 10 -M 40 -W 7 -I 3 -d 2018-09-21 bob
-m 最小天数,两次改变密码之间相距的最小天数设为“最小天数” -M 最大天数,将两次改变密码之间相距的最大天数设为“最大天数” -W 警告天数,将过时警告天数设为“警告天数” -I 过时多少每天数后,设定密码为失效状态 -d 最近日期,将最近一次密码设置时间设为“最近日期”
[root@vms002 bob]# chage -d 0 bob#强制修改密码。设置bob用户下次登陆必须修改密码
[root@vms002 tmp]# chgrp users rh124/ #改变rh124目录的所属组为users组
[root@vms002 bob]# groupadd testg #添加用户组
[root@vms002 bob]# groupdel testg #删除用户组
[root@vms002 bob]# userdel -r 用户名 #删除用户。用户主目录中的文件将随用户主目录和用户邮箱一块儿删除。在其它文件系统中的文件必须手动搜索并删除。邮箱在 login.defs 文件中的 MAIL_DIR 变量中定义。
/etc/passwd详解
格式以下:(使用 :分隔)jerry:x:1000:1000:jerry:/home/jerry:/bin/bash
第一列:用户名
第二列:密码,之前这里是直接存储密码的,可是问了安全如今把密码存放到/etc/shadow文件里了
第三列:UID,用户ID,普通用户RHEL7的范围为1000-60000,RHEL6的是从500开始的;root用户的UID为0;为何普通用户的UID是从1000-60000的一个范围呢?这是由/etc/login.defs 这个文件决定的,文件中有“UID_MIN ”和“UID_MAX”的设置,这个文件你若是修改的话,它将影响咱们新建的用户。
第四列:GID,用户ID,每一个用户都要属于一个组
第五列:注释
第七列:家目录
第八列:用户使用的shell。若是用户的shell是/sbin/nologin,这表示这个用户不能登陆系统,这个匿名用户,通常用于登陆某服务,好比说:用户能够登陆邮箱,可是不能登陆系统。若是你想修改用户默认登陆的shell,不建议直接修改/etc/passwd这个文件。
/etc/shadow详解
格式以下:(使用 :分隔)jerry:$6$YrQoJHcd/Ok4Qnur$1F3HbZoTn0re5xGROIYswItAuZEoLbjUwDCpwdxMc/OYveyJ4hbkUCotJ2jFgLRyDPN7roy6Phs3GsnNni6cj0:17756:0:99999:7:::
第一列:用户名第二列:加密的密码信息第三列:17756指的是从1970年1月1日到如今为止,总共经历了多少天第四列:密码最小使用天数,0的话是不作限制。做用:好比咱们设置的策略是密码使用30天要求更换密码,好了到了30天,密码你修改了,可是你把密码改为了和原来同样的,这样是没意义的,因此这里有了密码最小使用天数的设置第五列:密码最大使用天数,码永不过时第六列:密码更换前警告的天数。密码过时前提早几天给用户警告第七列:帐号被取消前的天数,密码过时以后,有几天的缓冲期?好比用户30天过时,已通过期了,这时候用户是无法登陆系统的,你在缓冲期期间登陆系统就会强制你修改密码,若是过了缓冲期你尚未修改,帐号就会被锁定。若是值是0的话就是没有缓冲期;果值是-1,表示你的缓冲期为永久。