概要:在学习Linux的初级阶段,用户管理是基础管理的重要部分,任何命令的运行,系统的正常运转,均离不开用户管理的内容,本篇就为大家介绍下Linux用户管理的一些基础概念和一些基础命令的用法。内容主要分为以下三个部分:
1、用户和组的一些基础内容介绍
2、用户管理命令的详解
3、组管理命令的详解
涉及到的相关命令主要有:useradd、usermod、userdel、passwd、su、groupadd、chage、groupmod、groupdel、gpasswd、groups、groupmems、id等相关命令
第一部分 用户和组管理的基础内容介绍
1、用户和组类型
linux系统上,用户的类型分为两大类:
<1>管理员用户:具有对Linux系统运行一些管理权限的用户,系统上,初始的管理员用户默认为root,区分管理员用户的标识其实是 UID(可理解为用户的身份标识号码),UID为0,则代表是管理员,不论用户名是否为root
<2>普通用户:普通用户有分为系统用户和普通登录用户
系统用户:用来Linux系统上运行一些软件和服务的用户,大部分都是非登录式的,UID范围在CentOS6系列上默认是从1-499;在 CentOS7上默认是1-999
普通登录用户:在系统上进行交互式的登录完成某些操作的用户,UID范围在在CentOS6系列上默认是从500+;在CentOS7上默认是 1000+
Linux系统上,对应的组也分为两大类:
<1>管理员组:具有管理员权限的用户所在的组,GID(组的身份标识)为0,默认是root组
<2>普通用户组:
系统组:GID范围在CentOS6系列上默认是从1-499;在CentOS7上默认是1-999
普通组:GID范围在在CentOS6系列上默认是从500+;在CentOS7上默认是1000+
Linux系统上用户和组的对应关系:
主组:每个用户必须要有且仅有一个主组。在创建用户时默认是与用户名同名
私有组:组内仅有一个用户的组
附加组:一个用户可以有多个附加组
2、用户和组管理涉及到的一些配置文件
/etc/passwd 用户信息配置文件
该配置文件里面主要是记录用户信息,每一行代表一个用户的信息,每一行分为7个字段,分别表示
用户名:密码占位符:UID:GID:注释信息:家目录:默认shell
如下图所示:
/etc/shadow 用户密码配置文件
该配置文件主要定义了用户密码相关的配置,每一行代表一个用户的信息,每行有9个字段,分别表示
用户名:加密后的密码:上次修改密码的日期:最小使用期:最长使用期:警告期:宽限期限:账户有效期;保留字段
加密的密码:
分为三个$分隔,第一个后面是加密算法;第二个后面是salt;第三个才是加密后的密码,CentOS6和CentOS上默认采取sha512单向加密算法进行加密
上次修改密码的时期:如果值为0,则表示用户下次登录必须要更改密码,相对于1970-01-01经过的天数
chage -d0 USERNAME 能改该用户的上次密码更改日期为0
passwd -e USERNAME 能改该用户的上次密码更改日期为0
最小使用期:密码最短要使用多久
最长使用期:密码最长要使用多久
如果最长使用期小于最短使用期,则表示用户不能更改密码
警告期: 在最长使用期到期之前,提前多少天提示用户
宽限期限:最大使用期限到期后宽限多少天
账户有效期:账号本身的有效期,以1970-1-1参考的天数
保留字段:
如图所示:
/etc/group 组信息配置文件
分为4个字段: 组名:密码占位符:GID:用户列表
当用户有多个时,每个用户之间用逗号分隔
如图所示:
/etc/gshadow 组密码配置文件
每行有4个字段:组名:加密后的密码:组管理员用户的账户:用户列表
如图所示:
/etc/default/useradd 添加用户时默认设置配置文件
配置文件如图所示:
GROUP:表示当用户创建利用-N选项不创建主组时,默认以哪个组作为主组
HOME:表示创建用户时的家目录位置
INACTIVE:表示非活动期限,也就是密码达到最大有效期后,用户的在这短时间内登录仍然能够修改密码,改密后正常使用
EXPIRE:表示账号有效期
SHELL:创建用户时用户的默认shell
SKEL:定义用户家目录相关配置文件和环境变量文件的拷贝模板目录
CREATE_MAIL_SPOOL:表示是否在创建用户时为其创建邮箱
/etc/skel 创建用户时用户家目录文件来源模板文件
/etc/login.def 用户相关配置和密码的主要配置文件
MAIL_DIR:用户邮件的目录
PASS_MAX_DAYS:密码最大有效期
PASS_MIN_DAYS:密码最小有效期
PASS_MIN_LEN:密码最短长度
PASS_WARN_AGE:密码警告期
UID_MIN:默认最小UID
UID_MAX:默认最大UID
GID_MIN:默认最小GID
GID_MAX:默认最大GID
CREATE_HOME:是否为用户自动创建家目录
UMASK:创建家目录时默认的UMASK值
第二部分 用户管理命令详解
1、useradd
useradd命令:
语法:useradd [OPTIONS] USERNAME
useradd -D
useradd -D [OPTIONS]
选项:
-u UID 指定UID
-o 不检查UID的唯一性,可用来指定已存在的UID为自己的UID
-g GROUP_NAME 指定主组
-G GROUP_NAME1,GROUP_NAME2,… 指定附加组
-c “DISCIPTION” 指定注释信息
-d /PATH/TO/DIR 指定家目录,如果给定的目录要事先不存在
-N 表示不创建以自己的名称命名的主组,而是以默认的user组作为自己的主组
-r 表示创建系统用户,系统账号的家目录、邮箱目录都不会自动生成
-s SHELL 指定用户SHELL类型
-M 不创建家目录
useradd -D 显示创建用户时的默认配置,是加上就是显示该文件的信息/etc/default/useradd
useradd -D -s SHELL 改变/etc/default/useradd文件里面定义默认shell的内容
useradd -D -b /DIR 改变/etc/default/useradd文件里面定义默认家目录的内容
2、usermod
usermod命令:
语法:usermod [OPTIONS] USERNAME
选项:
-u UID 指定新UID
-g GID 指定行的基本组
-G GROUP1,GROUP2,… 指定附加组,覆盖原有的附加组,要在原有的基础上增加要加-a选项
-s SHELL 指定新的SHELL
-c ‘DISCRIPTION’ 指定新的注释信息
-d /PATH/DIR 指定新的家目录,新家目录中不会自动创建,原家目录中的文件不会同时移动至新的家目录,如果要创建新家目录的时候移动原家目录的数据,要同时使用-m选项
-l USERNAME 指定新的用户名
-U 解锁用户,实际是去掉密码前的!
-L 锁定用户,相当于在/etc/shadow密码前加!
-e YYYY-mm-dd 指明用户账号的过期日期
-f DAYS 指定账户密码的宽限期限
3、userdel
userdel命令:userdel [OPTIONS]… USERNAME,默认删除用户不会删除用户的家目录和邮箱
-r 可以删除用户的时候,同时删除家目录和邮箱
4、id
id 命令:
语法:id [OPTION]… [USERNAME]
选项:
-u 显示用户UID
-g 显示主组GID
-G 显示所在的全部的组ID
-n 显示名称,而非ID
5、passwd
passwd命令:修改密码
格式:passwd [选项] 用户名
passwd后不跟任何选项,表示修改自己的密码
passwd 用户名:用于root用户修改其他用户的密码,不许要知道该用户之前的密码
选项:
-l,-u:锁定和解锁用户,相当于在/etc/shadow密码字段前加!和去掉!
-d:清除用户的密码串;
-e DATE过期期限,日期;
-i DAYS:宽限期限;
-n DAYS:密码最短使用期限;
-x DAYS:密码最长使用期限;
-w DAYS:密码警告期;
对应是修改/etc/shadow里面相应的信息
–stdin 密码来源重定向
例:echo “123456” |passwd –stdin nwc 为nwc用户修改密码为123456
6、chage
chage命令:更改用户密码的过期信息
格式:chage [选项] 用户名
选项:
-d:修改用户密码最后的修改日期
-E:修改用户密码的过期期限
-W:修改用户密码的警告期限
-m:修修用户密码的最短有效期
-M:修改用户密码的最长有效期
7、su
su命令:切换用户命令
登录式切换:会重新读取用户的配置文件来重新初始化
格式:su – 用户名
su -l 用户名
非登录式切换:不会读取目标用户的配置文件进行初始化
格式:su 用户名
注意:管理员可以无密码切换至其他任何用户,非管理员在切换用户时都需要给出目标用户的密码
特殊用法:
su – nwc -c COMMAND 表示不切换用户,而是仅以此用户身份运行指定的命令,命令执行完成后
8、其他用户管理相关命令
groups [username] 查看当前用户属于哪些组:
id [username] 查看当前用户属于哪些组:
pwunconv 不转换密码,也就是将密码存在/etc/passwd中,而不是用占位符x代替密码,转换后/etc/shadow文件将消失
pwconv 转换密码,将密码存在/etc/shadow中
getent passwd [username] 相当于cat /etc/passwd中指定用户名的行
getent shadow [username] 相当于cat /etc/shadow中指定用户名的行
getent group [username] 相当于cat /etc/group中指定用户名的行
getent gshadow [username] 相当于cat /etc/gshadow中指定用户名的行
autoconfig –passalgo=md5 –update 可修改密码的加密算法
chage -d0 USERNAME 能改该用户的上次密码更改日期为0
newgrp [GROUPNAME] 临时切换当前用户的主组到指定的组
strace ‘COMMAND’ 可以查看命令在内部做了哪些动作
第三部分 组管理命令详解
1、groupadd
groupadd命令:添加用户组命令
语法格式:groupadd [选项] group_name
常用选项:
-g GID:指定GID,默认是上一个组的GID+1
-r:创建系统组
2、groupmod
groupmod命令:修改组的属性
语法格式:groupmod [选项] group_name
常用选项:
-g GID:修改GID
-n new_name:修改组名
3、groupdel
groupdel命令:删除组
语法格式:groupdel [选项] group_name
一般不用加选项,且不能删除组内有用户的组
4、gpasswd
gpasswd命令:给组设置修改密码(/etc/gshadow)
格式:gpasswd [选项] 组名
选项 :
-a 用户名:向组中添加用户
-d 用户名:删除组中用户
不加选项代表给该组设置密码
5、groupmems
groupmems命令:直接修改配置文件,永久有效
groupmems -l -g GROUP_NAME 显示组内有哪些用户
groupmems -a USERNAME -g GROUP_NAME 向组内添加用户
groupmems -d USERNAME -g GROUP_NAME 删除组内的用户
groupmems -p -g GROUP_NAME 清空组内的所有用户
6、groups
groups [OPTIONS] USERNAME 查看用户属于哪些组
7、利用newusers命令和chpasswd命令批量添加用户
批量创建帐号:user1…user10
uid:3000-3009,shell:/bin/csh,home:/testdir/username
passwd:usernamepass
注意家目录相关配置,使用户正常登录
原创文章,作者:M20-1倪文超,如若转载,请注明出处:http://www.178linux.com/27143
评论列表(1条)
很好