文章目录
用户与用户组管理
一、用户与组文件目录
1.用户账号文件——/etc/passwd
该文件用于用户登录时校验用户的登录名、加密的口令数据项、用户ID(UID)、默认的用户组ID(GID)、用户信息、用户主目录以及登录后使用的shell。
每一行保存一个用户的资料,用户数据按域以冒号":"分隔
所有用户可读,不安全
username:password:uid:gid:userinfo:home:shell
域 | 含 义 |
---|---|
username | 登录名 |
password | 加密的用户口令 |
uid | 用户ID (独一无二,除非为0) |
gid | 主用户组ID (用户至少属于一个用户组,可属于任意个附属用户组) |
userinfo | 用户信息 |
home | 分配给用户的主目录 |
shell | 用户登录后将执行的shell(若为空格则默认为/bin/bash) |
2.用户影子文件——shadow
Linux使用不可逆的加密算法(如MD5,SHA1等)来加密口令。每条记录用冒号“:”分隔,形成九个域
只有root用户有权限
username:password:lastchg:min:max:warn:inactive:expire:flag
域 | 含 义 |
---|---|
username | 用户登录名 |
password | 加密的用户口令(无法倒退) |
lastchg | 表示从1970年1月1日起到上次修改口令所经过的天数 |
min | 表示两次修改口令之间至少经过的天数 |
max | 表示口令还会有效的最大天数,如果是99999则表示永不过期 |
warn | 表示口令失效前多少天内系统向用户发出警告 |
inactive | 表示禁止登录前用户名还有效的天数 |
expire | 表示用户被禁止登录的时间 |
flag | 保留域,暂未使用 |
3.用户组账号文件——group和gshadow
group_name:group_password:group_id:group_members
域 | 含 义 |
---|---|
group_name | 用户组名 |
group_password | 加密后的用户组口令 |
group_id | 用户组ID(GID) |
group_members | 将该组作为附属用户组,以逗号分隔的用户清单 |
4.使用pwck和grpck命令验证用户和组文件
- pwck命令检验/etc/passwd和/etc/shadow
- grpck命令检验/etc/group和/etc/gshadow
如果发现错误,将会提示用户对出现错误的数据项进行修改或删除。
二、管理用户/组
1.添加用户(useradd)
useradd [option] username
#用户创建后可随时用passwd命令改变自己的口令
passwd [username]
选项 | 理解 | 含义 |
---|---|---|
-c | comment | 指定一段注释性描述 |
-d | dir | 指定用户主目录 |
-g | groupname | 指定用户主目录 |
-G | group1,group2 | 指定用户所属附加组 |
-s | /bin/tcsh | 指定用户的登录Shell |
-u | userid | 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号 |
-r | 创建ID小于500的不生成主目录的系统账号 | |
用户名 | 指定新账号的登录名 |
2.修改用户信息(usermod)
usermod [op] username
#修改用户名,把user1改为u1
usermod -l u1 user1
3.删除用户(userdel)
userdel [op] username
#把用户的主目录一起删除
userdel -r
注:已登录的用户不能删除,要踢出后才能删除
4.创建用户组(groupadd)
#指定群组GID,GID在系统中必须唯一,大于499
groupadd -g gid
#创建小于500的系统组群
groupadd -r
5.修改用户组属性(groupmod)
#修改组名,tch -> teach
groupmod -n teach tch
6.删除用户组(groupdel)
注:若一个用户组为某用户的主组,则无法删除
三、管理登录用户
1.查看当前系统登录的用户信息(who)
2.将已登录的用户踢出
pkill -kill -t 登录终端
#如
pkill -kill -t pts/0
四、上机任务
1、查看并理解/etc下用户管理相关的四个数据文件:passwd、shadow、group和gshadow,分析每个文件第一行的信息;
# less /etc/passwd
# less /etc/shadow
# less /etc/group
# less /etc/gshadow
2、新建用户stu1、stu2,使用默认的属性,设置密码;
新建用户(默认属性):
# useradd stu1
修改密码:
# passwd stu1
3、在用户管理相关的四个数据文件中观察用户stu1、stu2的属性;
stu1的passwd文件:
stu的shadow文件:
stu的group文件:
stu的gshadow文件:
4、添加用户组grp1;使用默认的属性;
# groupadd grp1
5、添加用户组grp2;自动分配系统组ID号;
# groupadd -r grp2 //ID号小于500
6、在/etc/group文件中查看grp1和grp2的信息
7、新建用户user3,用户ID号为510,主用户组为grp1,附属用户组为grp2,用户描述信息“teacher user”,用户主目录为/var/u3,默认的bash,并设置密码;
# useradd -u 510 -g grp1 -G grp2 -c "teacher user" -d /var/u3 user3
# passwd user3
8、修改用户user1的属性,将主用户组改为grp1,用户名改为u1,描述信息改为“stu user”;
# usermod -l u1 -c "stu user" user1
9、在用户管理相关的四个数据文件中观察用户user3的属性;
user3password文件:
user3shadow文件:
user3group文件:
user3gshadow文件:
10、删除用户user2,观察用户主目录的权限属性;
权限由user2的用户名变成了user2的用户ID号502,该目录的权限将归于之后ID为502的用户所有
11、将用户u1连同主目录一起删除;
# userdel -r u1
12、删除用户组grp1,能删除吗?为什么?
不能,因为grp1是user3的主组
13、修改用户组grp1的组名为group1;
# groupmod -n group1 grp1
14、删除用户组grp2;
# groupdel grp2
15、结合chmod、chown和chgrp命令,验证文件的权限设置。
15、添加用户user4,设置密码
16、切换到其它终端,使用user4登陆
17、切换回root用户的终端,尝试删除user4,能成功吗?为什么?
不能,因为user4目前已登录
18、查询当前系统用户的登陆情况
# who
19、将已登陆的user4用户踢出
# pkill -kill -t tty2