Linux 系统中, 用户账号和用户组信息都存放在/etc 目录下.
/etc/passwd
存放用户账号信息, 每行一条用户账号信息. 内容格式(1用户名
:2口令
:3用户标识号(UID)
:4组标识号(GID)
:5账号备注信息
:6主目录
:7登录的Shell
), 字段之间用:
(冒号)隔开./etc/shadow
存放用户密码, 有效期等信息, 内容格式(1用户名
:2密码
:3密码修改时间
:4两次密码修改间隔最少天数
:5两次密码修改间隔最多天数
:6密码过期提前警告天数
:7密码过期多数天禁用此用户
:8用户过期时间
:9保留字段
), 字段之间用:
(冒号)隔开./etc/group
存放用户组信息, 每行一条用户组信息, 内容格式(1用户组名
:2用户组密码
:3用户组ID
:4用户组用户列表
), 字段之间用:
(冒号)隔开./etc/gshadow
: 存放用户组密码, 内容格式(1用户组名
:2用户组密码
:3用户组管理员列表
:4用户组成员列表
), 字段之间用:
(冒号)隔开.
新增用户到系统
使用
useradd
命令添加新用户, 添加新用户后, 使用passwd
设定账号密码.useradd
常用到的参数介绍:
-c, —comment COMMENT 账号备注
-d, —home-dir HOME_DIR 指定用户登入是的起始目录
-D, —defaults 更改useradd参数默认值
-e, —expiredate 账号有效期限
-f, —inactive INACTIVE 账号密码过期多少天后账号被关闭
-g, —gid GROUP 指定账号所属群组的 id 或者 name
-G, —groups GROUPS 指定账号所属的附加群组
-m, —create-home 自动建立用户的登入目录
-M, —no-create-home 不建立用户的登入目录
-N, —no-user-group 取消建立和用户名同名的用户组
-r, —system 创建系统账号
-s, —shell SHELL 指定用户登录后使用的shell
-u, —uid UID 指定用户的ID
添加用户实例
-
添加账号
guest01
到系统
sudo useradd guest01
sudo passwd guest01
# 查看一下新增加的用户
awk -F: '/^guest/{print "user:" $1, "uid:" $3, "gid:" $4, "home:" $6, "Shell:" $7}' OFS="\t" /etc/passwd
添加用户登录名为:
guest01
的用户到系统. 账号: guest01 能正常登录, 无用户主目录.
-
添加账号
guest02
到系统
sudo useradd guest02 -m
sudo passwd guest02
添加用户登录名为:
guest02
的用户到系统. 账号: guest02 能正常登录, 有用户主目录/home/guest02
.
-
添加账号
guest03
到系统
sudo useradd guest03 -m -d /home/other-user-home
sudo passwd guest03
添加用户登录名为:
guest02
的用户到系统. 账号: guest02 能正常登录, 有用户主目录/home/other-user-home
.
-
添加账号
guest04
到系统
sudo useradd guest04 -s /sbin/nologin -M -N
guest04
用户不允许登录系统, 不创建用户主目录, 不创建同名的用户组.
删除用户实例
-
删除
guest04
用户
sudo userdel guest04
只是删除账号信息.
-
删除
guest03
用户, 并且删除用户文件
sudo userdel -r guest03
用户主目录一并被删除.