[root@localhost ~]# useradd user0
[root@localhost ~]# useradd user1
[root@localhost ~]# ls /home/
lisi user0 user1
[root@localhost ~]# ls -a /home/user0/
. .. .bash_logout .bash_profile .bashrc
[root@localhost ~]# ls /etc/passwd -l
-rw-r--r--. 1 root root 889 4月 24 18:19 /etc/passwd
[root@localhost ~]# ls /etc/shadow -l
----------. 1 root root 711 4月 24 18:19 /etc/shadow
[root@localhost ~]# ls /etc/group -l
-rw-r--r--. 1 root root 466 4月 24 18:19 /etc/group
[root@localhost ~]# ls -l /etc/gshadow
----------. 1 root root 370 4月 24 18:19 /etc/gshadow
[root@localhost ~]# ls -al /etc/skel/ -a全部显示
总用量 24
drwxr-xr-x. 2 root root 62 4月 11 2018 .
drwxr-xr-x. 76 root root 8192 7月 10 10:56 ..
-rw-r--r--. 1 root root 18 4月 11 2018 .bash_logout
-rw-r--r--. 1 root root 193 4月 11 2018 .bash_profile
-rw-r--r--. 1 root root 231 4月 11 2018 .bashrc
[root@localhost ~]# ls -l /var/spool/mail/
总用量 0
-rw-rw----. 1 lisi mail 0 4月 24 18:19 lisi
[root@localhost ~]# ls -al /home/
总用量 0
drwxr-xr-x. 3 root root 18 4月 24 18:19 .
dr-xr-xr-x. 18 root root 235 5月 30 09:07 ..
drwx------. 2 lisi lisi 62 4月 11 2018 lisi
[root@localhost ~]# vi /etc/passwd //包含了系统用户信息。该文件的每一行都代表一个用户,并且每行由七个字段组成,这些字段通过冒号(:)分隔。
root:x:0:0:root:/root:/bin/bash
1.用户名:root
2.密码:存储在/etc/shadow中,这里是x
3.UID:0
4.GID:0
5.用户信息:root
6.家目录:/root
7.默认shell:/bin/bash
用户名
密码占位 真正的密码是在/etct/shadow中,shadow文件只有root才可以看到用户id 0超级用户 1-499 系统用户伪用户,500-65535 普通用户
初始组用户 添加用户默认添加同名组 /etc/group
用户说明,可有可无
用户家目录
用户登录后的权限 /bin/bash 可以执行可以执行所有权限 /sbin/nolog 伪用户无法登录
window要修改为管理员,就修改组
直接修改用户的uid就可以变成超级用户,但是不建议,因为超级用户只能是root
/etc/shadow字段含义:
包含用户账户的加密密码信息。该文件的每一行都对应一个用户账户,并且每行都有9个以冒号(:)分隔的字段。
1.用户名: 这是用户的登录名。
2.加密密码: 这是密码字段,其中包含用户密码的加密形式。
3.最后一次密码更改的时间: 这是表示1970年1月1日后密码最后一次被更改的时间,以天数表示。
4.密码最小时间期限: 这是密码不能被更改的最小时间(在这个时间内被认为是密码更改的天数)。
5.密码最大时间期限: 这是密码可以被更改的最大时间。
6.密码警告时间: 这是在密码过期前多少天开始警告用户。
7.密码过期时间: 这是密码过期后多少天账户被禁用。
8.账户关闭时间: 这是从1970年1月1日起账户被禁用的时间。
9.保留字段: 这是为将来的用途保留的字段。
影子文件(只能被root读取修改)
[root@localhost ~]# vi /etc/shadow
用户名称
密码 sha512*!表示没有密码
更新密码的时间 1970 11 时间错
两次修改时间的间隔
密码有效期
密码修改到期前的警告天数
密码过期后的宽限天 默认-1 为空永远不禁用
密码失效时间
保留 无意义
etc/group(存储有关用户组的信息。每行代表一个组)
[root@localhost ~]# tail -2 /etc/group
user0:x:1001: //组名:密码:GID:user_list(用户列表)
user1:x:1002:
[root@localhost ~]# vi /etc/gshadow
root::: // 组名:密码:组管理员列表:组成员列表
bin:::
daemon:::
......
[root@localhost ~]# passwd user0 //更改user0用户密码
更改用户 user0 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# ls -al /etc/skel/ //是家目录的模板
总用量 24
drwxr-xr-x. 2 root root 62 4月 11 2018 .
drwxr-xr-x. 76 root root 8192 7月 11 10:22 ..
-rw-r--r--. 1 root root 18 4月 11 2018 .bash_logout
-rw-r--r--. 1 root root 193 4月 11 2018 .bash_profile
-rw-r--r--. 1 root root 231 4月 11 2018 .bashrc
[root@localhost ~]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc
[root@localhost ~]# vi /etc/skel/notice.txt
[root@localhost ~]# cat /etc/skel/notice.txt
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
[root@localhost ~]# tree /home/
/home/
├── lisi
├── user0
└── user1
3 directories, 0 files
[root@localhost ~]# useradd user2
[root@localhost ~]# vi /etc/passwd
[root@localhost ~]# vi /etc/shadow
[root@localhost ~]# vi /etc/group
[root@localhost ~]# vi /etc/gshadow
[root@localhost ~]# vi /etc/login.defs
收集和验证管理用户和组的指令和参数
一、常用的用户管理命令包括添加用户账号(useradd),管理用户密码(passwd),修改用户账号(usermod),删除账户(userdel)等。
1.添加用户账号-useradd命令
格式如下:
useradd [选项] 用户名
添加用户账号st
[root@localhost ~]# useradd st
2.管理用户密码-passwd命令
root用户添加用户账号,必须为用户设置密码才能使用。
格式如下:
passwd [选项] [用户名]
[root@localhost ~]# passwd
更改用户root密码
新的密码:******
重新输入新密码:******
passwd:所有身份验证令牌已经更新
3.修改用户账号-usermod命令
格式如下:
usermod [选项] 用户名
使用usermod命令锁定和解锁用户账号stu01
[root@localhost ~]# usermod -L stu01
[root@localhost ~]# usermod -U stu01
4.删除用户账号-userdel命令
如果一个用户账号,可以删除该账号。
格式如下:
userdel [-r] 用户名
删除用户账号st
[root@localhost ~]# userdel -r st
二、管理用户组
1.用户组
在Linux系统中,用户组是一种将多个用户组合在一起的概念。用户组可以用来管理多个用户之间的权限和访问控制。每个用户都可以属于一个或多个用户组。
2.用户组管理命令
用户组的创建和管理可以通过命令行工具如groupadd、groupmod和groupdel和·来完成。
1.添加用户组-groupadd命令
格式如下:
groupadd [-g GID] 用户组名
添加用户组group01
[root@localhost ~]# groupadd group01
2.修改用户组属性-groupmod命令
格式如下:
groupmod [选项] 用户组名
将用户组group01的名称修改为group,同时将GID修改为2002
[root@localhost ~]# groupmod -n group -g 2002 group01
3.删除用户组-groupdel命令
删除用户组使用groupdel命令,格式如下:
groupdel 用户组名
4.添加、删除组成员-gpasswd 命令
gpasswd [选项][用户名] 用户组名
将用户stu01添加到用户组group中
[root@localhost ~]# gpasswd -a stu01 group
三、查看用户和用户组状态
1.用户查看命令
常用用户查看命令如表
2.用户切换命令
切换用户身份使用su命令
su [-] [用户名]
从root用户切换到普通用户deng,然后从普通用户切换到root用户。
[root@localhost ~]# su - deng
[deng@localhost ~]$ whoami
deng
[deng@localhost ~]$ su - root
密码:******
sudo命令
sudo命令是Unix和Linux操作系统中的一个命令,用于以超级用户的身份执行其他命令。"sudo"是"SuperUser Do"的缩写。
格式如下:
sudo [选项] 命令名
安装MySQL
- 下载官方 Mysql 包
2. 上传到服务器后解压
3.一般放在在/usr/local目录下
# 解压文件至/usr/local/目录
tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
# 重命名为 mysql
mv /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql
4.创建用户组
groupadd mysql #创建用户组
# -r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加到用户组 mysql 中
useradd -r -g mysql mysql
分配用户组
chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为 mysql 用户
chgrp -R mysql /usr/local/mysql/ # 将组属性改为 mysql 组
5.创建数据目录并赋予权限
mkdir -p /data/mysql #数据目录
chown mysql:mysql -R /data/mysql
6.修改配置文件 vim /etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
7.初始化数据库
参数: --basedir 为mysql解压目录,–datadir 为mysql数据存放目录。(注意安装路径是否一致)
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看初始密码
cat /data/mysql/mysql.err
密码已经生成
注:在初始化数据库时可能报缺少xx动态库的错误
如:error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:
第1步:查看是否安装了libaio,无返回则说明未安装,执行步骤2
rpm -qa|grep libaio
第2步:切换到root用户,使用命令yum install -y libaio进行安装
8. 加入到系统服务并启动mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
登录mysql,一定要开启服务后才能登陆
/usr/local/mysql/bin/mysql -u root -p
登录成功后会提示你重置密码
# 修改密码,SQL语句后面的分号不能丢
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
FLUSH PRIVILEGES; #刷新
退出 quit
重启服务 service mysql restart
再次登陆 /usr/local/mysql/bin/mysql -u root -p //输入刚修改的密码1234敲回车键
到此mysql已经安装完成了
在用工具连接mysql时提示:
MySQL 异常: "Host 'xxx' is not allowed to connect to this MySQL server"
解决:
登录mysql,刷新规则允许外部访问
host修改成%表示,所有主机都可以通过root用户访问数据库
use mysql #选择访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
第二种:通过yum在线安装Mysql
(1)找到对应linux的版本进行下载
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)
下载和安装mysql源
下载地址:https://dev.mysql.com/downloads/repo/yum/ 或 http://repo.mysql.com
#使用wget下载mysql
wget http://repo.mysql.com/mysql80-community-release-el7.rpm
如果显示wget未找到命令,则需要先安装wget:
yum -y install wget,然后再次执行上面命令, 使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。
结果图
(2)第二步 安装
通过yum安装方法,会直接添加mysql环境变量和启动服务
yum -y install mysql80-community-release-el7.rpm
安装MySQL服务器:community-server
yum -y install mysql-community-server
(3)第三步 启动服务并查看服务状态
systemctl start mysqld #一定要启动服务!
systemctl status mysqld #查看服务状态
(4)第四步 获取密码
登录 MySQL 必须要通过密码,此时 root 用户的密码可以通过以下命令在日志文件中获取:
grep "password" /var/log/mysqld.log
(5)第五步 登录并求改密码
登录
修改密码(修改规则)