用户管理
linux系统中分普通用户和系统用户,系统用户UID 1-999,登陆用户UID大于1000,用户UID范围0-60000,其中0为管理员用户。
用户配置文件
绝对路径:/etc/passwd
root:x:0:0:root:/root:/bin/bash
第一列:登陆用户名
第二列:密码
第三列:用户ID
第四列:主组ID
第五列:用户全名或注释
第六列:用户家目录
第七列:登陆shell
说明:
用户密码默认存放到/etc/shadow中,使用 pwconv 、pwunconv在passwd和shadow文件中转换,存放到passwd中时,shadow文件变为不存在;使用vipw、pwck对passwd文件进行编辑和语法检查。
新建用户相关文件
[root@localhost ~]# ll /etc/default/useradd /etc/login.defs /etc/skel/ -a
-rw-r--r--. 1 root root 119 Nov 5 2016 /etc/default/useradd #useradd创建用户使用的默认配置文件,用于指定默认shell等
-rw-r--r--. 1 root root 2028 Nov 5 2016 /etc/login.defs #使用shadow-utils包中的工具管理用户密码生成的默认信息
/etc/skel/: #生成家目录产生的默认配置文件信息从此目录复制
total 24
drwxr-xr-x. 3 root root 78 Apr 11 2018 .
drwxr-xr-x. 142 root root 8192 Mar 18 13:13 ..
-rw-r--r--. 1 root root 18 Apr 11 2018 .bash_logout
-rw-r--r--. 1 root root 193 Apr 11 2018 .bash_profile
-rw-r--r--. 1 root root 231 Apr 11 2018 .bashrc
drwxr-xr-x. 4 root root 39 Jun 2 2020 .mozilla
[root@localhost ~]#
用户管理命令
命令 | 选项 | 含义 |
---|---|---|
useradd 创建用户 useradd [options] login | -u | 指定UID |
-g | 指定用户的基本组 | |
-c | 指定用户的注释信息 | |
-d | 指定的路径不能存在,指定路径存在则不能复制创建用户的默认文件 | |
-s | 指定用户的默认shell程序,可用列表在/etc/shells文件中 | |
-G | 为用户指定附加组,组须事先存在,可指定多个组 | |
-N | 不创建私用组做主组,使用users组做主组 | |
-r | 创建系统用户 | |
-m | 创建家目录,用于系统用户 | |
-M | 不创建家目录,用于非系统用户 | |
-D | 显示和修改useradd默认配置 | |
usermod 修改用户属性 usermod [options] login | -l | 修改用户登录名 |
-u | 指定用户新UID | |
-g | 指定用户主组 | |
-G | 指定用户附加组,配合“-a”使用 | |
-c | 修改用户描述信息 | |
-d | 新家目录不会自动创建;若要创建新家目录并移动原家目录数据需要配合“-m” | |
-s | 修改用户shell类型 | |
-L | 锁定指定用户,在/etc/shadow密码列增加“!” | |
-U | 解锁用户,在/etc/shadow密码列取消“!” | |
-e | 指定用户账号过期时间 | |
-f | 密码过期几天后账号被禁用 | |
userdel 删除用户 userdel [options] login | -r | 删除用户家目录 |
-f | 强制执行一些操作,否则会失败,比如删除的用户还能登陆 | |
id id [option]... [user] 查询指定用户的 用户和组信息,不指定 用户查询当前用户 | -u | 显示指定用户的UID |
-g | 显示指定用户的GID | |
-G | 显示用户所有组ID | |
-n | 显示名称,需配合ugG使用 | |
newusers newusers [options] [file] 批量创建用户 和更改用户信息 | -r | 创建系统用户 |
密码管理
密码配置文件
绝对路径:/etc/shadow
root:$6$CJRDA/j6$da1HwW9K5YPsWfc4ofdZw1oPkBp14tqcuvG0xVBJqdmEqytBymaQ/KmHkDyJQlzI0ty17TxnS7fSAP9ebeqeR0:19061:0:99999:7:::
第一列:用户名
第二列:加密后的密码,“!!”表示禁止空口令登陆,删除加密密码或“!!”就可以空口令登陆
第三列:从1970年1月1日起到密码最近一次被更改的时间
第四列:密码再过几天可以修改(0表示不限制)
第五列:密码再过几天必须修改(99999表示永久)
第六列:密码过期前几天提醒用户密码过期(默认为一周)
第七列:密码过期几天后账号会被锁定
第八列:从1970年1月1日算起,多少天后账号失效
第九列:保留位
密码管理命令
命令 | 选项 | 含义 |
---|---|---|
passwd | -d | 删除指定用户密码 |
-l | 锁定指定用户 | |
-u | 解锁指定用户 | |
-e | 强制用户下次登陆修改密码 | |
-f | 强制指定操作 | |
-n mindays | 指定密码最短使用期限 | |
-x maxdays | 指定密码最长使用期限 | |
-w warndays | 提前多少天开始警告 | |
--stdin | 从标准输入接收用户密码 | |
chage | -d last_day | 设置从1970.1.1起,最后一次修改密码的天数,设置为0时,下次登陆强制修改密码。 |
-E expire_date | 设置从1970.1.1起不在访问用户账户的日期或天数 chage -E $(date -d +180days +%Y-%m-%d) | |
-I inactive | 设置密码过期后帐户锁定前的不活动天数 | |
-m min_days | 设置用户密码的最短有效期 | |
-M max_days | 设置用户密码的最长有效期 | |
-W warn_days | 设置用户密码要求被修改前警告天数 | |
-l | 显示密码策略 |
生成随机密码
命令 | 选项 | 含义 |
---|---|---|
mkpasswd | -l flag | 生成的密码长度,默认长度9 |
-d flag | 指定密码中有几个数字字符,默认是2 | |
-c flag | 指定密码中包含几个小写字符,默认是2 | |
-C flag | 指定密码中包含几个大写字符,默认是2 | |
-s flag | 指定密码中包含几个特殊字符,默认是1 | |
说明: mkpasswd 命令来至expect包 样例: mkpasswd -l 12 -d 3 -C 1 -s 2 |