修改密码
本页目录
修改密码#
出于安全考虑,建议 Skylab 平台在部署过程中所创建的系统用户以及平台内部用户,都需要设置符合一定强度的密码,密码需要每 90 天更换一次, 并且 5 次之内不能使用重复的密码。密码强度建议遵循如下规则:
长度至少是 8 位。
组成部分需要包含数字、大写字母、小写字母、特殊字符中的至少三种。
不要以姓名、出生日期、部门/单位名称、设备名称作为密码的组成部分。
不使用出厂默认口令。
避免出现 3 位以上键盘排序密码,避免出现 3 位以上连续字母、数字、特殊字符, 如 1234 或 qwer。
避免出现 3 位以上的重复字符,如 6666 或 bbbb。
避免多个系统配置相同的密码。
本章梳理 Skylab 平台有哪些用户需要修改,以及修改的方法,包括 Skylab 平台软件安装时创建的操作系统用户与 Skylab 平台各软件内部用户。
操作系统用户#
安装过程会自动创建一些操作系统用户,这些用户可能没有密码,需要在安装部署结束后统一设置密码。这些用户包括 oushu、postgres、flink、kafka、hdfs 以及 zookeeper
oushu#
在安装 Skylab 的产品时,会自动创建名字为 oushu 的系统用户,该用户默认无密码,安装、部署完 Skylab 平台所有产品后,建议手动为此用户设置密码。 Skylab 有一些后台进程使用 oushu 用户启动,如 OushuDB 的各服务。
修改方法:
所有安装有 Skylab 产品的节点。
确保以root用户身份登录,或者以具有sudo权限的用户身份执行命令。
执行 passwd oushu。
根据系统提示,输入并确认新密码。
如果在 Skylab 平台中添加机器的时候,使用的操作系统用户为 oushu:则需在修改完此系统用户密码之后,登录 Skylab 平台, 在”安装部署”产品的”节点管理”页面批量修改纳管的机器的密码为新密码(ssh 使用)。
postgres#
在安装 Skylab 的产品时,会自动创建名字为 postgres 的系统用户,该用户默认无密码,安装、部署完 Skylab 平台所有产品后,建议手动为此用户设置密码。 Skylab 有一些后台进程使用 postgres 用户启动,如 Postgresql 与 PGPool。
修改方法:
所有安装有 Postgresql 的节点。
确保以 root 用户身份登录,或者以具有 sudo 权限的用户身份执行命令。
执行 passwd postgres。
根据系统提示,输入并确认新密码。
flink/kafka/hdfs/zookeeper#
在安装Skylab 的 相关产品时,会自动创建名字为 flink、kafka、hdfs、zookeeper的系统用户用来启动相关进程,这些用户默认无密码,安装、部署完 Skylab 平台所有产品后,建议手动为此用户设置密码。
修改方法:同 postgres 密码修改。
Skylab 平台软件内用户#
###Skylab 内用户
Skylab 内用户,即 Lava 用户,通常是与其纳管的 OushuDB 内用户是同步的。可以通过登录 Skylab UI 修改。修改方式参见 用户管理 用户手册。
Skylab 的租户管理员可以登录 Skylab UI 修改本租户下的用户的密码与子租户管理员的密码。
Skylab 的用户都可以登录 Skylab UI 后修改自己的密码。
###Postgresql 内用户
安装 Lava 各模块时,会把 Postgresql(简称 PG) 作为依赖安装,并且在 PG 内部创建用户,部署单点模式时会创建 postgres、oushu 用户,在部署高可用模式时会创建postgres、oushu、pgpool 与 repl 用户。
单点模式#
需要修改 postgres、oushu 用户的密码。
修改方法:在 PG 节点,用 postgres 用户登录 PG 的 PSQL 客户端 ,执行如下 SQL:
ALTER USER postgres WITH PASSWORD '新密码';
ALTER USER oushu WITH PASSWORD '新密码';
在 lava-server、lava-admin、db-server 的配置文件 postgres.config.xml (路径 /usr/local/oushu/conf/xxx/) 中,修改为新密码,并重启。
<?xml version="1.0" encoding="utf-8"?>
<postgres>
...
<user>oushu</user>
<password>新密码</password>
高可用模式#
在高可用模式下,涉及的 PG 用户有 postgres(PG 自带初始化用户)、oushu(Lava 各后端模块所用)、pgpool(PGPool 所用用户) 与 repl(PG 主备同步用户)。
停止所有节点的 PGPool。在 PGPool 某节点使用 postgres 用户执行如下命令。
export LD_LIBRARY_PATH=/usr/pgsql-14/lib;export PATH=/usr/pgsql-14/bin:$PATH;
pcp_stop_pgpool -h hostname -p 9898 -U pgpool -m f -s c
修改 PG 用户密码与 PG Master 节点配置文件。在 PG Master 节点,执行:
sudo lava postgres-edit oushu 新密码 true
sudo lava postgres-edit postgres 新密码 true
sudo lava postgres-edit pgpool 新密码 true
sudo lava postgres-edit repl 新密码 true
修改 PG Standby 节点配置文件。在所有 PG Standby 节点,执行:
sudo lava postgres-edit oushu 新密码 false
sudo lava postgres-edit postgres 新密码 false
sudo lava postgres-edit pgpool 新密码 false
sudo lava postgres-edit repl 新密码 false
停止所有 Standby 节点。在每一个从节点执行(使用 postgres 用户):
export LD_LIBRARY_PATH=/usr/pgsql-14/lib;export PATH=/usr/pgsql-14/bin:$PATH;
pg_ctl -D /usr/pgdata/ stop
重启 PG Master 节点。 在 Master 节点执行(使用 postgres 用户):
export LD_LIBRARY_PATH=/usr/pgsql-14/lib;export PATH=/usr/pgsql-14/bin:$PATH;
pg_ctl -D /usr/pgdata/ restart
在所有节点启动 PGPool。使用 postgres 用户执行:
/bin/pgpool -f /etc/pgpool.conf -n -D > /tmp/pgpool.log 2>&1 &
启动 PG 所有 Standby 节点。使用 postgres 用户执行:
export LD_LIBRARY_PATH=/usr/pgsql-14/lib;export PATH=/usr/pgsql-14/bin:$PATH;
pcp_recovery_node -h hostname -p 9898 -U pgpool -n node_id
其中 hostname 为任意一安装了 PGPool 的节点,node_id 为 “show pool_nodes;” 命令返回的 PGPool 的 node_id。
修改 Lava 配置文件。在所有 Lava 节点的 lava-server、lava-admin、db-server、wasp 的配置文件 postgres.config.xml (路径 /usr/local/oushu/conf/xxx/) 中,修改为新密码,并重启。
<?xml version="1.0" encoding="utf-8"?>
<postgres>
...
<user>oushu</user>
<password>新密码</password>
如果安装了Flow、DataEnd,也需要修改相应的配置文件中的 PG 链接信息,并重启相应的服务。
具体文件分别是 “/usr/local/oushu/conf/flow/jdbc.properties” ,”/usr/local/oushu/conf/lavaflow/jdbc.properties” 。
###OushuDB 内用户
如果 OushuDB 中的用户是 Skylab 用户同步过来的(DB 内名字模式 myuser_u_tenantcode,Skylab 中的用户名字没有 _u_tenantcode 后缀),需要通过 Skylab UI 的”用户管理”页面修改密码。
如果 OushuDB 中的用户不是 Skylab 同步过来的(DB 内名字非 myuser_u_tenantcode 模式),则需要通过 psql 、worksheet 等 SQL 客户端执行如下 SQL 修改密码。
ALTER USER myuser WITH PASSWORD '新密码';
如果修改了 OushuDB 内部用户的密码,并且在 Skylab 的”数据源”模块(或外部的数据源)中使用此用户名、密码定义了数据源,需要同时修改相应数据源的用户名、密码的配置。
###HDFS 内用户
HDFS 无论 Simple 认证模式还是 Kerberos 认证模式,都无需修改密码。
在 Simple 认证模式下不进行密码认证(也无法在 Simple 模式下为用户设置密码),所有用户均可访问 HDFS,登陆用户为当前客户端操作系统用户,并根据对应的文件系统权限做控制访问。
在 Kerberos 认证模式下也无需进行密码修改,HDFS 登陆用户将会以 KDC Principal 认证用户为准,通过定期更新票据的方式代替更新密码,访问密码更新后无需更改其他相关组件。
###Zookeeper 内用户
Zookeeper 在非 digest 模式下,无需修改密码。
Zookeeper 默认部署配置及使用无需进行密码配置及修改,任何用户均可访问 Zookeeper,并在 Zookeeper 文件系统中通过
getAcl /
命令查看指定路径下所有用户的读写权限。Zookeeper 可在
digest
模式下配置用户及修改用户密码,如以下命令将把/path/to/node
上的 ACL 设置为user
用户的新密码newpassword
,并且仍然保持crdwa
权限。setAcl /path/to/node digest:user:newpassword:crdwa
具体的,oushu-hadoop 仅需要
/hadoop-ha
路径的读写权限进行功能实现,即:setAcl /hadoop-ha digest:user:newpassword:crdwa
在 Zookeeper 更新指定用户密码后,需要同步更新 HDFS、Kafka、Flink的相关配置,并重启服务,否则服务将无法连接 Zookeeper。
修改HDFS
hdfs-site.xml
配置文件,更新以下内容并重启 ZKFC 服务<property> <name>hdfs.zookeeper.property.auth</name> <value>@/path/to/zk-auth.txt</value> </property>
/path/to/zk-auth.txt
文件的内容为digest:zkfcUser:zkfcPasswd
,其中,zkfcUser
对应修改密码的用户,zkfcPasswd
对应修改的密码修改 Kafka 的 server.properties 配置文件,并重启 Kafka 服务。
zookeeper.username=zkfcUser zookeeper.password=zkfcPasswd
修改 Flink 的 flink-conf.yaml 配置文件,并重启 Flink 服务。
high-availability.zookeeper.client.acl: "digest:zkfcPasswd:zkfcPasswd"
Zookeeper 在 Kerberos 认证模式下也无需进行密码修改,zookeeper 登陆用户将会以 kdc principal 认证用户为准,通过定期更新票据的方式代替更新密码。