一、简介
useradd命令用于创建系统中的用户账号。使用 useradd 指令所建立的账号,实际上是保存在 /etc/passwd 文本文件中。
二、语法
语法:useradd [选项] [用户名]
参数说明:
-c:<备注>加上备注文字。备注文字会保存在passwd的备注栏位中
-d:<登入目录>指定用户登入时的起始目录
-D:变更预设值
-e:<有效期限>指定帐号的有效期限
-f:<缓冲天数>指定在密码过期后多少天即关闭该帐号
-g:<群组>指定用户所属的群组
-G:<群组>指定用户所属的附加群组
-m:制定用户的登入目录
-M:不要自动建立用户的登入目录
-n:取消建立以用户名称为名的群组
-r:建立系统帐号
-s<shell>:指定用户登入后所使用的shell
-u<uid>:指定用户ID
-o:允许创建重复UID的用户
-p:设置用户的密码
-R:设置根目录
-k:设置用户的骨架目录
-U:创建与用户同名的组,并将其加入
-l:不将用户添加到最近登录和登录失败数据库文件
-Z:设置用户的SELinux映射角色
-h:显示帮助信息
三、实战
1、添加一个用户
[]2、添加用户时添加一个指定的组
[]如果在创建用户时,不指定组,系统默认会创建一个同用户相同的组。
3、创建一个系统用户
[]useradd加“-r”不加“-r”的区别:
1.加-r选项:创建一个系统账户(System Account),UID分配在sys_uid_min至sys_uid_max范围内(通常为201-999),不会自动创建用户家目录,且默认无登录Shell权限(如/sbin/nologin),主要用于运行系统服务进程。
2.不加-r选项:创建一个普通用户账户(General User),UID分配在uid_min至uid_max范围内(通常为1000-60000),系统会自动创建家目录(如/home/用户名)和邮箱,并分配可登录的Shell环境(如/bin/bash)。
具体差异总结:
用户类型与UID范围:
1.系统账户(加-r):UID在201-999区间,用于非交互式服务管理。
2.普通用户(不加-r):UID在1000-60000区间,供日常交互使用。
家目录创建:
1.加-r时默认不生成家目录;需额外添加-m选项强制创建。
2.不加-r时自动创建家目录并初始化文件。
登录权限与Shell:
1.系统账户通常禁用登录(Shell设为/sbin/nologin),聚焦资源管理。
2.普通用户允许登录并分配默认Shell(如/bin/bash)。
使用场景:
1.加-r适用于守护进程或服务账户(如Apache或MySQL服务用户)。
2.不加-r适用于实际用户登录和交互操作。
这种设计确保了系统安全性与资源隔离,通过/etc/login.defs文件可自定义UID范围。
4、创建用户指定家目录
[]创建用户时,默认会创建在/home/用户名(实际创建的用户名称)下,在实际的工作中,有时候会把用户的家目录指定到别的目录中,此时创建用户时需要用参数“-d”来创建。
5、创建用户,并指定用户id
[]创建用户时,如果不加用户id系统会默认分配一个1000以后的id号(系统用户除外,且体可查看本文件中:useradd加“-r”不加“-r”的区别),组新创建的用户使用,在实际工作中,有些用户需要指定一个分配好的用户id使用,此时创建用户时,需要用参数“-u”来指定用户id创建。
6、创建一个不可登录的用户
[]7、创建一个用户,且不创建家目录
[]8、创建用户,为其分配一个扩展组(附属组)
[]9、创建用户,并指定过期时间
[]