用户和组管理命令
用户管理命令:useradd usermod userdel passwd
组管理命令:groupadd groupmod groupdel groupmems gpasswd
其他相关命令:newusers chpasswd chage newgrp id su
用户管理命令
useradd 添加用户
命令用法:useradd [options] LOGIN
useradd -D
useradd -D [options]
选项:
-u UID 指定UID
-o 配合-u 选项,不检查UID的唯一性
-g GID指明用户所属基本组,可为组名,也可以GID
-c更改用户的注释信息
-d HOME_DIR: 指定用户家目录(该目录为系统不存在的路径)
-s SHELL: 指明用户的默认shell类型 可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r 创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000
-m 创建家目录,用于系统用户
-M 不创建家目录,用于非系统用户
示例:
useradd -D 显示或更改默认设置
useradd –D -s SHELL
useradd –D –b BASE_DIR
useradd –D –g GROUP
useradd默认值设定目录:/etc/default/useradd
新建用户的相关文件和命令
/etc/default/useradd
/etc/skel/*
/etc/login.defs
newusers passwd格式文件 批量创建用户
chpasswd 批量修改用户口令,该命令用法与newusers一致
/etc/default/useradd文件内容
/etc/sekl 表示家目录下用户目录的环境变量信息
查看该文件发现与家目录下文件一致
当新建用户时,系统会把/etc/skel目录下文件复制到用户家目录下
/etc/login.defs 该目录包含了关于用户的默认设置信息。
newusers paswd格式文件 批量创建新用户
chpasswd 批量修改用户口令
usermod 用户属性修改
命令用法: usermod [options] login
选项:
-u UID: 新UID,指定用户UID
-g GID: 新主组,指定用户主组
-G GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项
-s SHELL:指定用户SHELL类型
-c 'COMMENT':指定用户注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据,同时使用-m选项
-l login_name: 更用户名
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限
userdel 删除用户
命令用法:userdel [OPTION]... login
选项:
-r 删除用户家目录
密码管理
passwd 设置密码
命令用法:passwd [OPTIONS] UserName
选项:
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
原理:更改用户最后一次登录时间为1970.1.1,因此下次登录必须更改口令
-f: 强制操作
--stdin:从标准输入接收用户密码
echo "PASSWORD" | passwd --stdin USERNAME 修改密码(使用管道技术)
修改用户密码策略
chage 修改密码策略
命令用法:chage [OPTION]... LOGIN
选项:
-d LAST_DAY
-E --expiredate EXPIRE_DATE
-I --inactive INACTIVE
-m --mindays MIN_DAYS
-M --maxdays MAX_DAYS
-W --warndays WARN_DAYS
–l 显示密码策略
示例:
chage -d 0 tom 下一次登录强制重设密码,相当于passwd -e
组管理命令
groupadd 创建组
命令用法:groupadd [OPTION]... group_name
选项:
-g GID: 指明GID号;[GID_MIN, GID_MAX]
-r: 创建系统组
CentOS 6版本:ID号1-499
CentOS 7版本:ID号1-999
groupmod 修改组属性
用法:groupmod [OPTION]... group
选项:
-n group_name: 指定组名
-g GID: 指定组GID
groupdel 删除组
groupdel 组名 删除组
更改组密码
gpasswd 组密码
命令用法:gpasswd [OPTION] GROUP
选项:
-a user 将user添加至指定组中
-d user 从指定组中移除用户user
-A user1,user2,... 设置有管理权限的用户列表
newgrp 临时切换主组
groupmems 更改和查看组成员
命令用法:groupmems [options] [action]
选项:
options:
-g, --group groupname 更改为指定组 (只有root)
Actions:
-a, --add username 指定用户加入组
-d, --delete username 从组中删除用户
-p, --purge 从组中清除所有成员
-l, --list 显示组成员列表
groups [OPTION] [USERNAME]... 查看用户所属组列表
id和su
id 查看用户ID信息
命令用法:id [OPTION]... [USER]
选项:
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用
su switch user 切换用户
命令用法:su [options...] [-] [user [args...]]
切换用户方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
root su至其他用户无须密码;非root用户切换时需要密码
换个身份执行命令:
su [-] UserName -c 'COMMAND'
选项:
-l --login
示例:su -l UserName 相当于 su - UserName
练习:
1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
.2、创建下面的用户、组和组成员关系
名字为webs 的组
用户nginx 使用webs 作为附属组
用户varnish,也使用webs 作为附属组
用户mysql,不可交互登录系统,且不是webs 的成员,nginx,varnish,mysql密码都是magedu
参考答案:
1、useradd -G bin,root -s /bin/csh -c ""
2、groupadd webs
useradd -G webs nginx
useradd -G webs varnish
useradd -s /sbin/nologin mysql
echo magedu |passwd --stdin nginx
echo magedu |passwd --stdin varnish
echo magedu |passwd --stdin mysql