day11 Linux用户管理
Linux 用户管理
Linux 用户介绍
多用户与多任务
可以同时存在多个用户
可以同时存在多个用户并同时登陆系统
Linux用户类型划分
超级管理员 | root | 可以登陆 |
---|---|---|
普通用户 | 权限有限 | 可以登陆 |
虚拟用户 | 仅用来启动服务 | 不可以登陆 |
Linux 用户uid说明
uid = Linux 用户 的身份证号,每个用户的uid都不一样
查看当前使用什么用户登陆的
[root@centos7-100 ~]# whoami
root
查看指定用户的id信息
[root@centos7-100 ~]#id root
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid的序号分类:
用户UID | 角色定义 |
---|---|
0 | 超级管理员 最高权限 拥有核爆的能力 |
1~200 | 系统用户 用来运行系统自带的进程 安装完系统就默认创建 |
201~999 | 系统用户 用来运行用户安装的程序 这些用户无需登陆系统 |
1000+ | 普通用户 可以正常登陆系统的用户 权限比较小 能执行的任务 |
Linux 用户相关配置
4.1 与用户相关的配置文件
/etc/passwd #用来存放用户信息,但是不包含密码
/etc/shadow #存放加密后的用户密码信息
4.2 /etc/passwd 配置文件讲解
root:x:0:0:root:/root:/bin/bash
用户名:密码:uid:gid:用户描述信息:用户家目录:登陆的解释器
4.3 /etc/shadow配置文件讲解
-用来存放加密后的密码
-如果用户没有设置密码,则密码列为空
第二章 Linux用户组介绍
1.什么是Linux用户组
简单来说,Linux系统中的用户组(group)就是具有相同特征的用户(user)集合
2.用户与用户组的关系
简单来说,Linux系统中的用户组(group)就是具有相同特征的用户(user)集合
比如我们需要让多个用户具有相同的权限
那么我们只需要将多个用户添加到一个组里
然后对这个组进行权限操作就相当于对这个组里所有用户进行相同的权限
3.Linux用户组相关配置文件
/etc/group
/etc/gshadow
4./etc/group字段解释
root:x:0:
组名:组密码:组id :组成员
5.创建一个用户会涉及到几个文件和目录的改动
/etc/passwd 创建用户信息
/etc/shadow 保存用户密码信息
/etc/group 创建用户组信息
/etc/gshadow 保存用户组密码
/home/用户名 默认创建普通用户家目录
第三章 Linux用户及用户组管理命令
1.添加用户命令 useradd
重要选项:
-u 指定uid
-g 指定gid
-c 添加用户说明
-M 不创建用户的家目录
不接任何参数创建一个普通目录
useradd zhaocheng
解释:
默认不加任何参数使用useradd命令会创建如下的用户
zhaocheng:x:1113:1113::/home/zhaocheng:/bin/bash
默认创建用户的同时会自动创建同名并且id也相同的组
默认会创建家目录/home/zhaocheng
默认的登陆shell是/bin/bash
默认创建用户是没有密码的,ssh默认是拒绝空密码用户登陆,所以即使允许登陆,也是登陆不成功的
root 用户切换到普通用户不需要知道密码,直接登陆
root修改其他用户的密码也不需要知道原来密码是什么也可以修改
案例2:创建一个普通用户并指定uid
useradd test2000 -u 2000
[root@centos7-100 ~]# id test2000
uid=1114(test2000) gid=1114(test2000) 组=1114(test2000)
解释:
创建普通用户的同时指定uid
但是注意,uid不能重复
案例3:创建一个普通用户并指定他的uid和gid
案例4:创建一个普通用户添加说明
命令:
useradd test3000 -u 3000 -c test3000
[root@centos7-100 ~]# tail -1 /etc/passwd
test3000:x:3000:3000:test3000:/home/test3000:/bin/bash
解释:
-c 是添加这个用户的说明,仅仅是给人看的,没有特殊含义
案例5:创建一个普通用户不创建家目录
命令:
useradd user4000 -M
效果:
[root@centos7-100 ~]# ll /home/user4000
ls: 无法访问/home/user4000: 没有那个文件或目录
[root@centos7-100 ~]# tail -1 /etc/passwd
user4000:x:3001:3001::/home/user4000:/bin/bash
解释:
-M 不会去创建用户的家目录
但是/etc/passwd文件里还会有记录
案例6:创建一个用户banzhang,uid为6666,不创建家目录,不允许登录/sbin/nologin
命令:
useradd banzhang -u 6666 -M -s /sbin/nologin
效果:
[root@centos7-100 ~]# tail -1 /etc/passwd
bangzhang:x:6666:6666::/home/bangzhang:/sbin/nologin
解释:
-s /sbin/nologin 不允许用户登陆
-M 既然用户已经不允许登陆了,那么家目录也就没有必要创建了
2.修改用户命令 usermod
作用:
修改已经创建好的用户信息uid/gid/shell
关键选项:
-s #修改登录shell
-u #修改uid
-g #修改gid
使用:
usermod -s /sbin/nologin -u 3333 zhaocheng
3.删除用户命令userdel
重要选项:
-r 删除用户的同时连同家目录一起删除
案例1:
删除用户同时删除家目录
userdel -r zhaocheng
4.添加用户组 groupadd
重要选项:
-g 指定gid
命令使用:
groupadd -g 1000 组名
useradd -u 1000 -g 1000 用户名
5.修改用户组 groupmod
groupmod -g 3333 zhaocheng
7.修改用户密码 passwd
使用方法:
passwd # 修改当前登录用户的密码
passwd 用户名 #修改指定用户的密码,只能用root用户
分情况使用;
如果是root用户,就可以修改任意用户的命令并且不需要知道原来用户的密码
如果你是普通用户,只能修改自己的密码,并且还得知道当前密码是什么,还要满足密码的复杂度
ssh 指定连接用户:
ssh 用户名@IP地址
ctrl +d 退出登录
拓展:如何免交互修改密码
echo 密码|passwd --stdin 用户名
echo 123456 |passwd --stdin zhaocheng
用户查询相关命令:
w 查询系统登录用户情况
id 查看用户id情况
whoami 查看登录的用户名
9.拓展-切换用户后显示不正常
-bash-4.2# cp /etc/skel/.bash* 用户的家目录下
总结: 使用率99%命令
useradd 添加用户
usermod 修改用户
userdel 删除用户
groupadd 添加用户组
groupmod 修改用户组
passwd 密码
su - 用户名 切换登录用户
ssh 用户名@ip shell 远程IP登录
whoami 查询登录的用户名
w 当前系统登录情况
id 查询用户id情况