一、用户和组管理命令
1. 用户管理命令:
useradd:用户创建
usermod:用户属性修改
userdel:删除用户
a. 用户创建:useradd
用法:useradd [options] LOGIN
-u:UID
-o:配合-u选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID
-c "COMMENT":用户的注释信息
-d HOME_DIR:以指定的路径(不存在)为家目录
-s SHELL:指明用户的默认shell程序,可用列表在/etc/shells文件中
-G GROUP1[,GROUP2,...]:为用户指明附加组,组须事先存在
-N:不创建私用组做主组,使用users组做主组
-r:创建系统用户CentOS 6:ID<500,CentOS 7:ID<1000
-m:创建家目录,用于系统用户
-M:不创建家目录,用于非系统用户
显示或更改默认设置(即用命令方式修改/etc/default/useradd)
useradd -D
useradd -D -s SHELL
useradd -D -b BASE_DIR
useradd -D -g GROUP
b. 用户属性修改:usermod
用法:usermod [OPTION] login
-u 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:设定非活动期限
c. 删除用户:userdel
用法:userdel [OPTION]... login
-r:删除用户家目录
2. 组账号维护命令:
groupadd:创建组
groupmod:修改组属性
groupdel:删除组
a. 创建组:groupadd
用法: groupadd [OPTION]... group_name
-g GID:指明GID号;[GID_MIN,GID_MAX]
-r:创建系统组
CentOS 6:ID<500
CentOS 7:ID<1000
b. 修改组属性:groupmod
用法: groupmod [OPTION]... group
-n group_name:新名字
-g GID:新的GID
c. 删除组:groupdel
用法: groupdel GROUP
3. 其它:
- id:查看用户相关的ID信息
- id [OPTION]... [USER]
-u:显示UID
-g:显示GID
-G:显示用户所属的组的ID
-n:显示名称,需配合ugG使用
- id [OPTION]... [USER]
- getent:查看用户和组的配置文件
- getent passwd [用户名]:查看用户信息
- getent shadow [用户名]:查看用户的口令信息 = cat /etc/shadow
- getent group [用户名]:查看组信息
- getent shadow [用户名]:查看组的口令信息
- 文件操作
- vipw和vigr:编辑用户和组的配置文件
- pwck和grpck:检查用户和组的配置文件格式
- 切换用户或以其他用户身份执行命令
su [options...] [-] [user[args...]]- 切换用户的方式:
su UserName:非登录式切换,即不会读取目标用户的配置文件,不改变当前工作目录
su - UserName:登录式切换,会读取目标用户的配置文件,切换至家目录,完全切换
root su至其他用户无须密码;非root用户切换时需要密码 - 换个身份执行命令:
su [-] UserName -c 'COMMAND'
-l --login:su -l UserName
相当于su - UserName
-c "COMMAND":su - UserName -c "COMMAND"
切换用户后直接执行命令,执行后退回原用户
- 切换用户的方式:
- 密码相关
- passwd [OPTIONS] UserName:修改指定用户的密码
-d:删除指定用户密码
-l:锁定指定用户
-u:解锁指定用户
-e:强制用户下次登录修改密码
-f:强制操作
-n:mindays,指定最短使用期限
-x:macdays,最大使用期限
-w:warndays,提前多少天开始警告
-i:inactivedays,非活动期限
--stdin:从标准输入接收用户密码
示例:echo "PASSWORD"|passwd --stdin USERNAME - 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 显示密码策略 - gpasswd:更改组密码
gpasswd [OPTION] GROUP
-a user:将user添加指定组中
-d user:从指定组中移除用户user
-A user1,user2,...:设置有管理权限的用户列表 - authconfig --passalgo=sha256 --update 更改加密算法
- 生成随机口令:
openssl rand -base64 9
mkpasswd:rpm -ivh /misc/cd/Packages/expect
- passwd [OPTIONS] UserName:修改指定用户的密码
- 用户描述信息
- finger UserName:查看用户描述信息
- chfn UserName:修改用户描述信息
- 新建用户的相关文件
- /etc/default/useradd:
GROUP=100:在创建用户时用-N不创建自己的私有组为主组时,用户默认的主组GID是100
HOME=/home:创建用户时默认家目录所在文件夹
INACTIVE=-1:用户账号过期后给的宽限期(-1为永远宽限)
EXPIRE=:
SHELL=/bin/bash:默认shell类型
SKEL=/etc/shel:自动生成家目录里文件的模版目录
CREATE_MAIL_SPOOL=yes:是否创建邮箱,邮箱在:/var/spool/mail - /etc/skel/*:
自动生成家目录里文件的模版目录 - /etc/login.defs
MAIL_DIR:定义了默认的邮箱路径
PASS_MAX_DAYS:创建用户默认的口令最长有效期
PASS_MIN_DAYS:创建用户默认的口令最短有效期
PASS_MIN_LEN:创建用户默认的口令最短长度(只限制普通用户,root不受影响)
PASS_WARN_AGE:创建用户默认的更改口令的警报时长
UID_MIN:创建用户默认最小UID
UID_MAX:创建用户默认最大UID
SYS_UID_MIN:创建系统用户默认最小UID
SYS_UID_MAX:创建系统用户默认最大UID
GID_MIN:创建组默认最小GID
GID_MAX:创建组默认最大GID
SYS_GID_MIN:创建系统组默认最小UID
SYS_GID_MIN:创建系统组默认最大UID
GREATE_HOME(yes/no):是否创建家目录
ENCRYPT_METHOD:默认的加密算法
- /etc/default/useradd:
- 批量操作
newusers passwd格式文件:用标准输出批量创建用户
chpasswd:可用标准输出批量修改用户口令 - 其它:
- newgrp命令:临时切换主组
如果用户本不属于此组,则需要组密码 - chsh 指定shell(chsh -s 同 usermod -s)
- 更改和查看组成员
groupmems [options] [action]
options:
-g, --group groupname 更改为指定组(只有root能用)
actions:
-a, --add username 指定用户加入组
-d, --delete username 从组中删除用户
-p, --purge 从组中清除所有成员
-l, --list 显示组成员列表
groups [OPTION].[USERNAME]... 查看用户所属组列表
- newgrp命令:临时切换主组
二、练习
(1)、创建组distro,其GID为2019;
[root@CentOS7 ~]#groupadd distro -g 2019
(2)、创建用户mandriva, 其ID号为1005;基本组为distro;
[root@CentOS7 ~]#useradd mandriva -u 1005 -g distro
(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;
[root@CentOS7 ~]#useradd mageia -u 1100 -d /home/linux
(4)、给用户mageia添加密码,密码为mageedu,并设置用户密码7天后过期
[root@CentOS7 ~]#echo "mageedu"|passwd --stdin mageia
[root@CentOS7 ~]#passwd -x 7 mageia
(5)、删除mandriva,但保留其家目录;
[root@CentOS7 ~]#userdel mandriva
(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;
[root@CentOS7 ~]#getent group peguin
[root@CentOS7 ~]#useradd -u 2002 -g distro -G peguin slackware
(7)、修改slackware的默认shell为/bin/tcsh;
[root@CentOS7 ~]#chsh -s /bin/tcsh slackware
(8)、为用户slackware新增附加组admins;
[root@CentOS7 ~]#groupadd admins
[root@CentOS7 ~]#groupmems -g admins -a slackware