管理用户账号和组账号
用户账号的分类
超级用户
root 用户是 Linux 操作系统中默认的超级用户账号,权限最高,进行系统 管理、维护任务时,才使用 root 用户登录系统,日常事务处理建议只使用普 通用户账号,root ID=0
普通用户
普通用户账号需要由 root 用户或其他管理员用户创建,权限受 到一定限制,只在用户自己的宿主目录中拥有完整权限系统用户 UID:1-999(centos7 版本) 1-499(centos6 版本) UID:即每个用户的身份标示,类似于每个人的身份证号码.
程序用户
在安装Linux操作系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统仅用于维持系统或某个程序的正常运 行,如 bin、daemon、ftp、mail
又称为伪用户不会用来登录系统的,主要是用于维持某个服务的正常运行.如:ftp,apache
UID(用户id)和(组账号)GID
UID用户识别号
管理员组:root 0
UID1~999是系统保留的
UID从1000开始,是由于/etc/login.defs这个文件中的配置决定的
vim /etc/login.defs
GID组标识号
普通组:GID
系统组:1-499(CentOS6), 1-999(CENTOS7)
普通组:500+(CentOS6), 1000+(CENTOS7)
主要组 必须要一个组 有且唯一
附加组 可有可无 有可以有多个
默认行为当你创建一个新用户时会自动创建一个和之同名的主组
用户账号文件
保存用户名称,宿主目录,登录shell等基本信息
文件位置在/etc/passwd(简要信息)
格式
使用 “:” 作为分隔符
x:表示此用户设有密码,但不是真正的密码,真正的密码保存在/etc/shadow文件,只有root用户可以浏览和操作,保证密码的安全
"x"不是表示真正的密码,不能删除,如果删除了 “x”,系统会认为这个用户没有密码,导致只输入用户名而不用输入密码就可以登陆(只能在使用无密码登录,远程是不可以)
第一个0:用户账号的 UID 号
第二个0:所属基本组账号的 GID 号
第二个root:描述性信息,此字段只是用来解释这个用户的意义而已
第三个root:宿主目录,即该用户登录后所在的默认工作目录
通常称为用户的主(家)目录,例如:root主目录为/root,普通用户odysee的主目录为/home/odysee
/bin/bash是登录 Shell 等信息,用户完成登录后使用的
保存用户的密码,账号有效期等消息
文件在/etc/shadow(详细信息)
格式
555: 6 6 6t9TZJ3Ro$nmiF0MVIU3O7Yny86TcAIPTgrbQlItGuUTY/2XZvDStEGmsj2dZRqtBEsxd7aldNPgC93I8Yb/0r6A2Fl0yZL1:19894:0:99999:7:::
使用 “:” 作为分隔符,每行用户信息被划分为 9 个字段
**第一个:**账户名
**第二个:**存放真正加密的密码,采用SHA512散列算法,更加安全 加密源来用MD5 或 DES
!!和*表示没有密码不能登陆,新创建用户是!!,如果密码前面显示双感叹号表示该账户被锁定
**第三个:**上一次修改密码的时间,从1970年1月1日开始算,因为1970年是linux的诞生日,date -d "1970-01-01 18983 days"可以查看哪一天改过
chage -d
**第四个:**多久之后才可以修改密码,如果是 0,则密码可以随时修改最小修改间隔时间 ,该字段规定了从第三个字段(最后一次修改密码的日期)起,多长时间之内不能修改密码,如果是0 则随时修改密码,如果是10 则代表密码修改后10天之内不能再次修改密码,此字段是为了针对频繁更改账号密码而设计的
chage -m +数字
**第五个:**密码有效期,默认99999(273年),表示永久生效
chage -M +数字
**第六个:**密码到期前的第几天发出告警信息,默认是7天,每次登录系统都会向该账户发出 “修改密码” 的警告信息
chage -W +数字
**第七个:**密码过期的宽限天数,过期后的几天还是可以登陆的,如果过了宽限天数,系统将不再让此账户登陆,也不会提示账户过期,是完全禁用,此字段规定的宽限天数是10,则代表密码过期10天后失效;如果是0 则代表密码过期后立即失效;如果是 -1 则代表密码永远不会失效
chage -I大写i +数字
**第八个:**账号失效时间,使用自 1970 年 1 月 1 日以来的总天数作为账户的失效时间
chage -E +数字
**第九个:**保留,未使用
chage命令
修改账号密码有效期,针对目前系统已有用户
格式
chage +选项 +用户名
选项
-m 密码可以更改的最小天数,为0代表任何时间都可以修改密码
-M 密码保持有效的最大天数
-w 用户密码到期前,发送告警信息的天数
-E 账号到期的日期,超过后账号不可用
-I(大写i) 停滞期,假设密码已经过期指定的天数,账号将不可以用
-l 显示当前对用户的密码,账号有效期的设置,由非特权用户确定账户或者密码过期时间
例:chage -d 0 555 用户555需要立即修改密码
例:chage -d 2024-06-21 555 用户555最后一次修改账户密码的时间为2024年6月21日
例:chage -m 30 555 用户555最小修改密码的最小时间是30天
例:chage -M 90 555 用户555修改密码最大时间是90天
例:chage -I 10 555 用户555的账号密码失效10天后,账户555不可以使用
例:chage -E 2024-06-22 555 用户555将在2024年6月21日失效,不能登录
例:chage -l 555 显示用户555的密码账号有效期设置
添加用户账号
useradd
格式
useradd +选项 +用户名
选项
-u:指定用户的 UID 号,要求该 UID 号码未被其他用户使用
-d:指定用户的宿主目录位置(当与-M 一起使用时,不生效)
-e:指定用户的账户失效时间,可使用 YYYY-MM-DD 的日期格式
-g:指定用户的基本组名(或使用 GID 号)
-G:指定用户的附加组名(或使用 GID 号)
-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录
-s:指定用户的登录Shell
例:useradd 999 添加用户999
例:useradd -d /admin -g wheel -G root admin 将用户admin加入root的附加组
例:useradd -e 2024-06-20 -s /sbin/nologin yyy 创建一个名为yyy的程序用户使它无法登录
例:useradd -u 11111 112 设置用户112的uid
例:useradd -M lisi 创建一个属组lisi
设置/更改用户口令
passwd
格式
passwd +选项 +用户名
选项
-d 清空指定用户的密码,仅使用用户名即可登录系统
-l 锁定用户账户
-u 解锁用户账户
-S 查看用户账户的状态(是否被锁定)
例:passwd -d 113 清除账号113的密码
例:passwd -l 113 锁定账号113的密码
例:passwd -S 113 查看账号113状态
例:passwd -u 113 解锁账号113