Linux用户管理(上)
1.什么是用户?
用户指的是能够正常登录Linux或Windows系统。(比如:登录QQ的用户、登录王者荣耀的用户、等等等)
2.为什么要创建用户?
1.系统上的每一个进程(运行的程序),都需要一个特定的用户运行
2.通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。
3.如何查看当前用户的详情
1.查看当前登录的用户信息
# id #查看当前所登录的用户信息
uid=0(root) gid=(root) groups=0(root)
# id cc(用户) #查看其它用户的信息
2.每一个进程都会由一个用户身份运行
# ps aux |less #简单使用查看进程信息
4.创建用户会在系统的那个配置中保存信息
Linux系统会将用户信息存放在/etc/passwd,记录了用户的信息,但没有密码信息,密码被存放在/etc/shadow中。也就是说这两个文件非常重要,不要轻易删除修改。
1./etc/passwd 配置文件解释如,或者man 5 passwd
[root@docker01 ~]# head -n1 /etc/passwd
root:x:0:0:root:/root:/bin/bash #以:作为分隔符,总共七列
1 2 3 4 5 6 7
分别为:
用户名称:密码占位符:用户UID:组GID:注释信息:用户家目录:登录shell
2./etc/shadow 配置文件解释如下, 或者man 5 shadow
3.系统对用户有一个约定?(约定娶你,就真的会娶嘛? tz)
| 用户UID | 系统中约定的含义 |
|---|---|
| 0 | 超级管理,最高权限,有着极强的破坏力 |
| 1~200 | 系统用户,用来运行系统自带的进程,默认已创建 |
| 201~999 | 系统用户,用来运行用户安装的程序,所有此类用户无需登录系统 |
| 1000+ | 普通用户,正常可以登录系统用户,权限比较小,能执行的任务有限 |
5.如何创建用户、删除用户、修改用户?
下面演示用户的创建、变更、删除等操作,涉及的命令:useradd、usermod、userdel
1、使用useradd命令新增用户,注意:adduser命令软连接指向useradd命令
#选项
# -u 指定要创建的用户UID,不允许冲突
# -g 指定要创建用户默认组
# -G 指定要创建用户附加组,逗号隔开可添加多个附加组
# -s 指定要创建用户的bash shell
# -c 指定要创建用户的注释信息
# -d 指定要创建用户的家目录
# -M 给创建的用户不创建家目录
# -r 创建系统用户,默认无家目录
#1.创建kk用户,UID5001,基本组students,附加组sa 注释信息:2021 new student,登录shell:/bin/bash
[root@docker01 ~]# groupadd sa
[root@docker01 ~]# groupadd students
[root@docker01 ~]# useradd -u 5001 -g students -G sa -c "2021 new student" -s /bin/bash kk
[root@docker01 ~]# id kk 检查kk用户
uid=5001(kk) gid=1001(students) groups=1001(students),1000(sa)
[root@docker01 ~]# grep "kk" /etc/passwd 过滤配置信息
kk:x:5001:1001:2021 new student:/home/kk:/bin/bash
#2.创建mysql系统用户,-M不创建用户的家目录 -s指定nologin使用其他用户无法登录系统
方法一:-r 创建系统用户,系统用户默认就没有家目录,-s 在指定不允许登录系统
[root@docker01 ~]# useradd mysql -r -s /sbin/nologin
[root@docker01 ~]# id mysql
uid=997(mysql) gid=993(mysql) groups=993(mysql)
方法二:-M不给用户创建家目录,并指定登录的bash是/sbin/nologin
[root@docker01 ~]# useradd mysql2 -M -s /sbin/nologin
2、如何使用usermoad命令修改用户信息
#选项
# -u 指定要修改用户的UID
# -g 指定要修改用户基本组
# -G 指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组
# -d 指定要修改用户家目录
# -s 指定要修改用户的bash shell
# -c 指定要修改用户注释信息
# -l 指定要修改用户的登陆名
# -L 指定要锁定的用户
# -U 指定要解锁的用户
#1、检查此前创建的用户信息
[root@docker01 ~]# grep kk /etc/passwd
kk:x:5001:1001:2021 new student:/home/kk:/bin/bash
#2、修改kk用户uid6001、group:devops,groups:network,sa
[root@docker01 ~]# groupadd devops
[root@docker01 ~]# groupadd network
[root@docker01 ~]# usermod kk -u6001 -gdevops -G network,sa
-G > network,sa 覆盖
-aG >> network 追加
检查
[root@docker01 ~]# id kk
uid=6001(kk) gid=1002(devops) groups=1002(devops),1000(sa),1003(network)
#3、修改kk用户的注释信息 用户家目录/opt/kk 登录shell /bin/sh 登录名 kk_new
[root@docker01 ~]# usermod kk -c "2000 new student" -d /opt/kk -s /bin/sh -l kk_new
检查
[root@docker01 ~]# grep kk /etc/passwd
kk_new:x:6001:1002:2000 new student:/opt/kk:/bin/sh
#4、锁定用户【扩展】
# echo "123" |passwd --stdin username
# usermod -L username #锁定后会无法登陆系统
#5、解锁用户【扩展】
# usermod -U username
3、使用userdel命令删除用户
#选项 -r 删除用户的家目录,以及用户的邮件
测试环境:随便删
生产环境:尽量不要使用-r操作,因为对方的家目录下可能有一些比较重要的配置、或者其他...
#1.删除user1用户,但不删除用户家目录和 mail spool
[root@kk ~]# userdel user1
#2.-r参数可以连同用户家目录一起删除(慎用)
[root@kk ~]# userdel -r user1
了解项:
who、whoami、w检查用户登陆情况
6.如何为用户设定密码,又如何修改密码?
创建用户后,如需要使用该用户登陆系统则需要为用户设定密码,设定密码使用passwd命令。建议密码复杂度高一些、长度大于10、出现各种特殊字符、无任何规律.
1、使用passwd命令修改用户密码
# passwd #给当前用户修改密码
# passwd root #给root用户修改密码(只能是root才有此权限,其他任何用户都没有该权限)
# passwd kk #给kk用户修改密码(root可以,或者kk用户自己给自己修改密码)
2、通过passwd --stdin读取输出的结果,将结果赋值给对应的用户
# echo "123" | passwd --stdin kk #非交互式修改密码
PS: 注意事项
1.普通用户只允许变更自己的密码,无法修改其他人密码,并且密码长度必须8位字符
2.管理员用户允许修改任何人的密码,无论密码长度多长或多短。
3、系统内置变量生成随机字符串
[root@docker01 ~]# echo $RANDOM |md5sum |cut -c 2-10
e468fc893
选项:
-l 设定密码长度,
-d 数子,
-c 小写字母,
-C 大写字母,
-s 特殊字符
[root@docker01 ~]# yum install expect -y
#注意:各种特殊字符的位数加起来,不能超过-l指定的长度
[root@docker01 ~]# mkpasswd -l 10 -d 2 -c 3 -C 3 -s 2
[ks1KOmZ8$
PS: 推荐密码保存套件工具,支持windows、MacOS、Iphone以及浏览器插件Lastpass官方网站
7.用户的创建流程?【了解】
8.用户组如何管理?




浙公网安备 33010602011771号