centos pam mysql docker部署centos

大家好,今天给各位分享centos pam mysql的一些知识,其中也会对docker部署centos进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

详解CentOS操作系统账户管理

账户管理相关配置文件如下:账户信息文件是/etc/passwd、账户密码文件是/etc/shadow、群组信息文件是/etc/group、群组密码文件是/etc/gshadow。

1、/etc/passwd文件怎么看

如上图,/etc/passwd文件中每一行为一个账户,以冒号作为分割的每个字段意思按序号分别如下:

[1]账户名。改名使用命令usermod-l

[2]密码,该字段已启用。账户密码在/etc/shadow文件配置

[3] UID,账户的唯一标识。影响该字段值的命令包括:useradd-u、usermod-u

[4] GID,初始群组的唯一标识,关联/etc/group文件的第3个字段。该群组为账户默认的有效群组(有效群组可以使用newgrp命令进行切换)。影响该字段值的命令包括:useradd-g、usermod-g

[5]描述。影响该字段值的命令包括:useradd-c、usermod-c

[6]家目录绝对路径。影响该字段值的命令包括:useradd-d、usermod-d

[7] shell,账户默认启用的shell,当为/sbin/nologin时账户无法登录。账户能使用的shell可以用命令chsh-l查询(查询结果为/etc/shells文件的内容)。影响该字段值的命令包括:useradd-s、usermod-s

2、/etc/shadow文件怎么看

如上图,文件/etc/shadow的每一行对应一个账户的密码信息,以冒号作为分割的每个字段意思按序号分别如下:

[1]账户名,关联/etc/passwd文件的第1个字段

[2]密码,加密后的密文,加密算法由/etc/login.defs文件中的ENCRYPT_METHOD指定,此处为SHA512。影响该字段值的命令包括:usermod-L(前置!!冻结)、usermod-U(解冻)、passwd-l(冻结)、passwd-u(解冻)、

[3]创建日期,上图显示的是一个数字,该数字表示自1970-01-01以来所经历的天数。影响该字段值的命令包括:chage-d

[4]密码创建之后需经历多少天才能再次修改,0表示无此限制。影响该字段值的命令包括:passwd-n、chage-m

[5]密码创建多少天之后就过期,99999天约等于99999/365年,好几百年意味着密码不会过期。影响该字段值的命令包括:passwd-x、chage-M

[6]密码过期前多少天开始向用户发送警告信息。影响该字段值的命令包括:passwd-w、chage-W

[7]密码过期后还能宽限多少天,在此时间段内用户还可以登录和修改密码,过了这个时间段用户就不能够登录了。影响该字段值的命令包括:useradd-f、usermod-f、passwd-i、chage-I

[8]失效日期,一个数字,该数字表示自1970-01-01以来所经历的天数。过了这一天用户的密码就失效,无论是否过期均不可再登录。影响该字段值的命令包括:useradd-e、usermod-e、chage-E

[9]保留

3、/etc/group文件怎么看

如上图,文件/etc/group的每一行对应一个群组,以冒号作为分割的每个字段意思按序号分别如下:

[1]群组名。改名使用命令:groupmod-n

[2]密码,已启用,群组密码在/etc/gshadow文件中配置

[3] GID,群组唯一标识,由/etc/passwd文件中的第4个字段关联,作为对应账户的初始群组。影响该字段值的命令包括:groupadd-g、groupmod-g

[4]帐号名列表,以逗号隔开。这些帐号可以主动切换为该群组的成员,如上图用户mophee(初始群组为mophee)可使用newgrp命令将其生效群组切换为mysql或mail。影响该字段值的命令包括:useradd-G、usermod-[a]G

4、/etc/gshadow文件怎么看

如上图,文件/etc/gshadow中的每一行对应一个群组的密码信息,以冒号作为分割后的每个字段意思按序号分别如下:

[1]群组名,与/etc/group中的群组名对应

[2]密码,加密后的密文,使用命令gpasswd group_name可设置群组密码,使用gpasswd-r group_name删除密码

[3]群组管理员,使用命令gpasswd-A user1,... group_name可设置群组的管理员。注:群组管理员可以为群组成员设置密码

[4]群组成员,该字段与/etc/group的第4个字段相同且同步更改,除了使用useradd-G、usermod-G命令维护外,还可使用gpasswd-[adM]进行维护。影响该字段值的命令包括:useradd-G、usermod-[a]G

-----------------------------------------------

理论上,修改以上4个配置文件就可以进行账户管理,但不建议这样进行账户管理。Linux提供足够的命令对账户进行管理,虽然这些命令实质上也是修改这4个文件的内容,但建议使用这些命令:

useradd:添加账户

useradd mophee#建立群组mophee,建立账户mophee,建立家目录/home/mophee且权限为700。无密码,无法登录。useradd-u 519-g users mophee2#建立账目mophee2并指定UID为519,指定初始群组为usersuseradd-r mophee3#建立系统帐号mophee3,UID和GID范围:100~499,无家目录usermod:修改账户

userdel:删除账户

userdel mophee#删除账户mophee:#1、从/etc/passwd和/etc/shadow删除;#2、从/etc/group和/etc/gshadow的最后一个字段除移;#3、若其初始群组无其它成员账户,则删除群组userdel-r mophee#除了删除账户外,还删除其家目录和邮件目录passwd:账户密码管理

passwd-S mophee#列出帐号mophee相关的密码信息chage:修改账户密码,一般用户可用此命令修改自己的密码

chage-l mophee#列出帐号mophee相关的密码信息groupadd:添加群组

groupmod:修改群组

groupdel:删除群组

gpasswd:群组密码、群组管理员和成员管理

groups:查看所属群组

groups mophee#列出帐号mophee所属的群组newgrp:切换有效群组

----------------------------------------------

与账户管理有关的其它配置文件:/etc/login.defs、/etc/default/useradd(使用命令useradd时的一些默认值)。

1、文件/etc/default/useradd怎么看

GROUP:预设的群组ID

HOME:家目录的基准目录,添加账户且创建其家目录等同于在该基准目录下新建一个与账户名同名的目录,影响/etc/passwd的第6个字段

INACTIVE:设置密码过期后是否失效,-1表示不会失效,影响/etc/shadow的第7个字段

EXPIRE:密码失效日期,影响/etc/shadow的第8个字段

SHELL:默认的shell,影响/etc/passwd的第7个字段

SKEL:创建家目录是参考的初始内容,即创建家目录时会将该目录下的内容复制一份到家目录中

CREATE_MAIL_SPOOL:是否创建对应的mailbox目录,yes/no,yes时会在/var/spool/mail/目录下创建与帐号名同名的目录用于存储该账户的邮件

2、文件/etc/login.defs怎么看

MAIL_DIR:邮件目录的基准目录,一般为/var/spool/mail

PASS_MAX_DAYS:自密码创建之日起到过期的天数,影响/etc/shadow的第5个字段

PASS_MIN_DAYS:密码创建之后不允许更改的天数,影响/etc/shadow的第4个字段

PASS_MIN_LEN:设置密码允许的最短长度,已启用,由pam模块取代该功能

PASS_WARN_AGE:密码过期之前开始发送警告信息的天数,影响/etc/shadow的第6个字段

UID_MIN:小于该数字值的UID均为系统帐号,默认设为500。使用useradd且未添加-r选项时添加的账户UID均大于此值

UID_MAX:系统支持最大的UID值

GID_MIN:与UID_MIN功能类似,影响的是GID

GID_MAX:与UID_MAX功能类似,影响的是GID

CREATE_HOME:默认是否创建家目录,yes/no

UMASK:家目录默认权限的反码,即该值为077时,家目录的权限为700

USERGROUPS_ENAB:设置在使用userdel命令删除账户时,如果其初始群组下没有其它成员账户,是否将群组也删除。yes/no

ENCRYPT_METHOD:加密算法,如SHA512

在CentOS上安装Percona服务器的方法

在这篇文章中我们将了解关于 Percona服务器,一个开源的MySQL,MariaDB的替代品。InnoDB的数据库引擎使得Percona服务器非常有吸引力,如果你需要的高性能,高可靠性和高性价比的解决方案,它将是一个很好的选择。

在下文中将介绍在CentOS 7上 Percona服务器的安装,以及备份当前数据,配置的步骤和如何恢复备份。

1.什么是Percona,为什么使用它

Percona是一个MySQL,MariaDB数据库的开源替代品,它是MySQL的一个分支,相当多的改进和独特的功能使得它比MYSQL更可靠,性能更强,速度更快,它与MYSQL完全兼容,你甚至可以在Oracle的MySQL与Percona之间使用复制。

在Percona中独具特色的功能

分区适应哈希搜索

快速校验算法

缓冲池预加载

支持FlashCache

MySQL企业版和Percona中的特有功能

从不同的服务器导入表

PAM认证

审计日志

线程池

现在,你肯定很兴奋地看到这些好的东西整合在一起,我们将告诉你如何安装和对Percona Server做基本配置。

2.备份你的数据库

接下来,在命令行下使用SQL命令创建一个mydatabases.sql文件,来重建或恢复salesdb和employeedb数据库,根据你的设置替换数据库名称,如果没有安装MySQL则跳过此步:

代码如下:

mysqldump-u root-p--databases employeedb salesdb mydatabases.sql

复制当前的配置文件,如果你没有安装MYSQL也可跳过:

代码如下:

cp my.cnf my.cnf.bkp

3.删除之前的SQL服务器

停止MYSQL/MariaDB,如果它们还在运行:

代码如下:

systemctl stop mysql.service

卸载MariaDB和MYSQL:

代码如下:

yum remove MariaDB-server MariaDB-client MariaDB-shared mysql mysql-server

移动重命名放在/var/lib/mysql当中的MariaDB文件。这比仅仅只是移除更为安全快速,这就像2级即时备份。:)

代码如下:

mv/var/lib/mysql/var/lib/mysql_mariadb

4.使用二进制包安装Percona

你可以在众多Percona安装方法中选择,在CentOS中使用Yum或者RPM包安装通常是更好的主意,所以这些是本文介绍的方式,下载源文件编译后安装在本文中并没有介绍。

从Yum仓库中安装:

首先,你需要设置Percona的Yum库:

代码如下:

yum install

接下来安装Percona:

代码如下:

yum install Percona-Server-client-56 Percona-Server-server-56

上面的命令安装Percona的服务器和客户端、共享库,可能需要Perl和Perl模块,以及其他依赖的需要,如DBI::MySQL。如果这些尚未安装,可能需要安装更多的依赖包。

使用RPM包安装:

我们可以使用wget命令下载所有的rpm包:

代码如下:

wget-r-l 1-nd-A rpm-R"*devel*,*debuginfo*"/

使用rpm工具,一次性安装所有的rpm包:

代码如下:

rpm-ivh Percona-Server-server-55-5.5.42-rel37.1.el7.x86_64.rpm/

Percona-Server-client-55-5.5.42-rel37.1.el7.x86_64.rpm/

Percona-Server-shared-55-5.5.42-rel37.1.el7.x86_64.rpm

注意在上面命令语句中最后的反斜杠'/'(只是为了换行方便)。如果您安装单独的软件包,记住要解决依赖关系,在安装客户端之前要先安装共享包,在安装服务器之前请先安装客户端。

5.配置Percona服务器

恢复之前的配置

当我们从MariaDB迁移过来时,你可以将之前的my.cnf的备份文件恢复回来。

代码如下:

cp/etc/my.cnf.bkp/etc/my.cnf

创建一个新的my.cnf文件

如果你需要一个适合你需求的新的配置文件或者你并没有备份配置文件,你可以使用以下方法,通过简单的几步生成新的配置文件。

下面是Percona-server软件包自带的my.cnf文件

代码如下:

# Percona Server template configuration

[mysqld]

#

# Remove leading# and set to the amount of RAM for the most important data

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size= 128M

#

# Remove leading# to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

#

# Remove leading# to set options mainly useful for reporting servers.

# The server defaults are faster for transactions and fast SELECTs.

# Adjust sizes as needed, experiment to find the optimal values.

# join_buffer_size= 128M

# sort_buffer_size= 2M

# read_rnd_buffer_size= 2M

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

根据你的需要配置好my.cnf后,就可以启动该服务了:

代码如下:

systemctl restart mysql.service

如果一切顺利的话,它已经准备好执行SQL命令了,你可以用以下命令检查它是否已经正常启动:

代码如下:

mysql-u root-p-e'SHOW VARIABLES LIKE"version_comment"'

如果你不能够正常启动它,你可以在/var/log/mysql/mysqld.log中查找原因,该文件可在my.cnf的[mysql_safe]的log-error中设置。

代码如下:

tail/var/log/mysql/mysqld.log

你也可以在/var/lib/mysql/文件夹下查找格式为[主机名].err的文件,就像下面这个例子:

代码如下:

tail/var/lib/mysql/centos7.err

如果还是没找出原因,你可以试试strace:

代码如下:

yum install strace systemctl stop mysql.service strace-f-f mysqld_safe

上面的命令挺长的,输出的结果也相对简单,但绝大多数时候你都能找到无法启动的原因。

6.保护你的数据

好了,你的关系数据库管理系统已经准备好接收SQL查询,但是把你宝贵的数据放在没有最起码安全保护的服务器上并不可取,为了更为安全最好使用mysqlsecureinstall来安装,这个工具可以帮助你删除未使用的默认功能,并设置root的密码,限制使用此用户进行访问。只需要在shell中执行该命令,并参照屏幕上的说明操作。

代码如下:

mysql_secure_install

7.还原备份

如果您参照之前的设置,现在你可以恢复数据库,只需再用mysqldump一次。

代码如下:

mysqldump-u root-p mydatabases.sql

恭喜你,你刚刚已经在你的CentOS上成功安装了Percona,你的服务器已经可以正式投入使用;你可以像使用MySQL一样使用它,你的服务器与它完全兼容。

总结

为了获得更强的性能你需要对配置文件做大量的修改,但这里也有一些简单的选项来提高机器的性能。当使用InnoDB引擎时,将innodbfileper_table设置为on,它将在一个文件中为每个表创建索引表,这意味着每个表都有它自己的索引文件,它使系统更强大和更容易维修。

可以修改innodbbufferpool_size选项,InnoDB应该有足够的缓存池来应对你的数据集,大小应该为当前可用内存的70%到80%。

将innodb-flush-method设置为O_DIRECT,关闭写入高速缓存,如果你使用了RAID,这可以提升性能,因为在底层已经完成了缓存操作。

如果你的数据并不是十分关键并且并不需要对数据库事务正确执行的四个基本要素完全兼容,可以将innodbflushlogattrx_commit设置为2,这也能提升系统的性能。

AD域账户实现安全登录MySQL数据库AD域账户登录mysql

AD域账户实现安全登录MySQL数据库

在企业中,许多应用程序使用MySQL数据库作为它们的后端存储,而使用AD域(Active Directory)作为认证方法也是非常常见的。因此,本文将介绍如何使用AD域账户实现安全登录MySQL数据库。

1.准备工作

在开始之前,您需要做以下准备工作:

–安装MySQL数据库

–将MySQL配置为支持PAM(Pluggable Authentication Modules)认证

–安装saslauthd,用于将PAM请求映射到Kerberos

2.配置MySQL

a.启用PAM认证

打开MySQL配置文件/etc/my.cnf,添加以下行:

[mysqld]

plugin-load=pam_auth.so

pam-service-name=mysql

b.重启MySQL服务

执行以下命令重启MySQL服务:

$ service mysql restart

3.设置Kerberos

a.安装Kerberos

在Debian/Ubuntu上,执行以下命令来安装Kerberos:

$ apt-get install krb5-user krb5-config

在CentOS/RHEL上,执行以下命令来安装Kerberos:

$ yum install krb5-workstation

b.配置Kerberos

编辑/etc/krb5.conf文件,并添加以下内容:

[libdefaults]

default_realm= EXAMPLE.COM

[realms]

EXAMPLE.COM={

kdc= kdc.example.com

admin_server= kdc.example.com

default_domn= example.com

}

[domn_realm]

.example.com= EXAMPLE.COM

注:EXAMPLE.COM为您自己的Kerberos域名,kdc.example.com是Kerberos服务器的主机名。

c.创建Kerberos账户

使用以下命令创建Kerberos账户:

$ kadmin.local

kadmin.local: addprinc root/mysql.example.com@EXAMPLE.COM

d.修改saslauthd配置文件

编辑/etc/default/saslauthd文件,添加以下内容:

START=yes

MECHANISMS=”kerberos5″

KERBEROS_V4=0

OPTIONS=”-c-m/var/run/saslauthd”

4.测试

现在您可以测试是否可以使用AD域账户登录MySQL数据库了。使用以下命令安装MySQL命令行工具:

$ apt-get install mysql-client

$ yum install mysql

接着,使用以下命令登录MySQL:

$ mysql-u [AD域账户名]-p

您将被提示输入AD域账户密码,输入后就可以成功登录MySQL了。

总结:

通过以上步骤,我们可以很容易地实现AD域账户登录MySQL数据库,从而提高了安全性和便利性。当然,我们也可以通过调整saslauthd配置,使用其他认证方式来实现更加详细的安全控制。

阅读剩余
THE END