一、用户账户配置文件
用户账户配置文件路径:/etc/passwd
文件中每一行对应一个用户的账号记录,每一行有7段,段与段之间是用:分隔,每一段的意思如下:
字段1:用户帐号的名称
字段2:用户密码字串或者密码占位符"x"
字段3:用户帐号的UID号
字段4:所属基本组帐号的GID号
字段5:用户全名
字段6:宿主目录
字段7:登陆shell信息
备注:UID(User Identify,用户标识号)
GID(Group Identify,组标识号)
二、用户密码存储文件
作用:用于保存密码字串、密码有效期等信息
文件路径:/etc/shadow
文件中每一行对应一个用户的密码记录,每一行有9段,段与段之间有:分隔,每一段的意思如下:
字段1:用户账号的名称
字段2:加密的密码字符串(!起始,代表账号不得登陆系统)
字段3:上次修改密码的时间(从1970.1.1起始至现在)
字段4:密码的最短有效天数,默认值为0
字段5:密码的最长有效天数,默认值为99999
字段6:提前多少天警告用户口令将过期,默认值为7(-1表示不警告)
字段7:在密码过期之后多少天禁用此用户(-1表示永远不禁用)
字段8:帐号被禁用天数,默认值为空(-1表示账户被启用)
字段9:保留字段(未使用)
三、创建用户账户
格式:useradd [选项] 用户名
-u:指定UID标记号
-d:指定宿主目录,缺省为/home/用户名
-e:指定账户失效时间
-g:指定用户的基本组名(或GID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登陆Shell
1、新建一个用户
备注:(1)、默认新建用户UID标记号为500,上图中之所以我新建的用户admin的UID为502,是因为在这之前我新建了两个用户,所以再新建用户时,就会按照500的为开始的UID号递增;
(2)、如果没有表明GID,那么GID默认等于UID;
(3)、新建账户时,会在/home目录下自动生成一个跟账户名一样的文件夹,如/home/admin这个文件夹,这个文件夹中的一些配置文件是从/etc/skel目录中复制而来的,如以下几个配置文件:
~/.bash_profile:用户每次登录时执行;
~/.bashrc:每次进入新的Bash环境时执行;
~/.bash_logout:用户每次退出登录时执行;
用ls -a命令可以查看账户文件夹中这些配置文件
.gnome2文件夹是针对于桌面环境设置的
.mozilla文件夹是针对于火狐浏览器设置的
2、新建账户时,同时指定UID标记号
备注:如果指明了新建用户的UID,如果再新建用户时,新建的用户UID默认以/etc/passwd文件中最大的UID基础上递增,如再新增一个用户testadmin,它的UID会默认为801,如下图所示
3、新建用户时,同时指名宿主目录
cat命令查看新建的用户,宿主目录就变为/home/fileA了
用ls命令查看/home目录时,就多了一个fileA文件夹
4、新建用户时,同时设置用户失效时间
用cat命令查看新建用户密码信息,下图中的18260-18003就是它的失效时间,18003是1970.1.1到系统当前时间的天数
5、新建用户时,指定基本组名和附加组名
也可以直接用组名
用id命令查看账号信息,因为只有这个命令才能查看到附加组名
6、一般情况下,只要新建一个账户,/home下就有一个同名的账户的文件夹,如果用-M,就不需要在/home下建一个同名的账户文件夹了,如新建一个test5账户
7、默认新建账户是可以登陆系统的,Shell为/bin/bash,如果新建一个账户不让它登陆系统,Shell可以用/sbin/nologin
备注:当新建账户后,没有给账户设置密码,这个账户是不可以登陆系统的,一旦给账户设置了密码就可以登陆系统,但是如果新建账户时设置了/sbin/nologin,账户就不可以登陆系统。
四、设置用户密码
格式:passwd [选项] 用户名
-d:清空用户的密码,使之无需密码即可登陆
-l:锁定用户账户
-S:查看用户账号的状态(是否被锁定)
-u:解锁用户账户
1、设置账户admin的密码
用cat命令查看账户密码文件
2、锁定admin账户
3、查看账户的状态
4、解锁账户
查看账户状态
备注:SHA512,用cat命令查看账户密码文件时,如果账户的密码是以$6开头的加密字符串,那么这串加密的字符串采用的是SHA的加密算法后得到512位的加密字符串。
5、如果直接用passwd命令,那么更改的是当前登陆账户的密码
上图中当前登陆账户是root
五、修改用户账号的属性
格式:usermod [选项] 用户名
-l:更改用户账号的登陆名称
-L:锁定用户账户
-U:解锁用户账户
-u:修改UID标记号
-d:修改宿主目录,缺省为/home/用户名
-e:修改账户失效时间
-g:修改用户的基本组名(或GID号)
-G:修改用户的附加组名(或GID号)
-s:修改用户的登陆Shell
备注:1、-L、-U这两个命令选项与passwd命令中的-l、-u选项含义相同;
2、-u、-d、-e、-g、-G、-s选项与useradd命令中选项含义相同;
1、将admin账号名改为pp
at命令查看账户,可以看到账户文件中没有admin这个账号了,取而代之的是pp这个账号,账户文件中除了将admin账号改为pp账号,其余不改变(UID、GID、宿主目录等等都不改变)
六、删除用户账号
格式:userdel [-r] 用户名
添加-r选项时,表示连用户的宿主目录一并删除
如果要删除test这个账号,加-r选项后,在/home目录下已经没有test这个文件夹了
七、创建组账号
格式:groupadd [-g GID] 组账号名
添加-g选项时,表示创建组账号时,同时指定组GID号,如果没有指定GID,就默认以/home/group文件中最大的GID号开始递增
八、添加、删除组成员
格式:gpasswd [选项] 组账号名
-a:向组内添加一个用户
-d:从组内删除一个用户成员
-M:定义组成员列表,以逗号分隔
1、将test2用户添加到testadmin组内
用id命令查看test2账户属性,可以看到test2账户中多了一个附加组testadmin
2、将test2账户从testadmin组内删除
3、将账号test2、test3、test4、test5加到testadmin组内
备注:(1)修改账户时,也可以直接用vim /etc/group命令,直接修改group文件;
(2)/etc/group 是保存组账号基本信息
八、删除组账号
格式:groupdel 组账号
备注:如果一个组是用户账号的基本组,那么是不可以删除的
用cat命令查看组账户,查看到组账户testgroup的GID是900
用cat命令查看用户账号,查看到用户账号中peopletest的GID也是900,也就是说peopletest的基本组是testgroup
那么这个时候来删除组账户testgroup,是无法删除的
九、常用查询用户和组账号的命令
1、查询用户身份标识
格式:id [用户名]
2、查询用户所属的组
格式:groups [用户名]
3、查询已登陆到主机的用户信息
users、w、who都可以来查询已登陆到主机的用户信息,只不过查询出来的内容有些区别
十、图形界面也可以用来管理用户与组账户