更新脚本

This commit is contained in:
2020-07-14 16:55:29 +08:00
parent d19ae5ee5b
commit ebc9b6dcd7
3 changed files with 6 additions and 20 deletions
-13
View File
@@ -14,19 +14,6 @@
# 函数列表
# 配置 libnss_wrapper 以使得 PostgreSQL 命令可以以任意用户身份执行
# 全局变量:
# PG_*
postgresql_enable_nss_wrapper() {
if ! getent passwd "$(id -u)" &> /dev/null && [ -e /usr/lib/libnss_wrapper.so ]; then
export LD_PRELOAD='/usr/lib/libnss_wrapper.so'
export NSS_WRAPPER_PASSWD="$(mktemp)"
export NSS_WRAPPER_GROUP="$(mktemp)"
echo "postgres:x:$(id -u):$(id -g):PostgreSQL:${PG_DATA_DIR}:/bin/false" > "$NSS_WRAPPER_PASSWD"
echo "postgres:x:$(id -g):" > "$NSS_WRAPPER_GROUP"
fi
}
# 加载应用使用的环境变量初始值,该函数在相关脚本中以 eval 方式调用
# 全局变量:
# ENV_* : 容器使用的全局变量
+1 -2
View File
@@ -71,8 +71,7 @@ _main() {
# 以root用户启动时,修改相应目录的所属用户信息为 APP_USER ,确保切换用户时,权限正常
for dir in ${APP_DIRS}; do
LOG_D "Change ownership and permissions of $dir"
chmod 0755 "$dir"
configure_permissions_ownership "$dir" -u "${APP_USER}" -g "${APP_GROUP}"
configure_permissions_ownership "$dir" -f 755 -d 755 -u "${APP_USER}" -g "${APP_GROUP}"
done
# 解决 PostgreSQL 目录权限过于开放,无法初始化问题:FATAL: data directory "/srv/data/postgresql" has group or world access
+5 -5
View File
@@ -27,7 +27,7 @@ ensure_dir_exists() {
local dir="${1:?directory is missing}"
local owner="${2:-}"
[[ ! -d "$dir" ]] && mkdir -p "${dir}"
mkdir -p "${dir}"
if [[ -n $owner ]]; then
ensure_owned_by "$dir" "$owner"
fi
@@ -94,13 +94,13 @@ configure_permissions_ownership() {
read -r -a filepaths <<< "$paths"
for p in "${filepaths[@]}"; do
if [[ -e "$p" ]]; then
LOG_D "Check directory $p"
LOG_D "Check $p"
if [[ -n $dir_mode ]]; then
LOG_D "Change permissions to 755 of directories in $p"
LOG_D "Change permissions to $dir_mode of directories in $p"
find -L "$p" -type d -exec chmod "$dir_mode" '{}' +
fi
if [[ -n $file_mode ]]; then
LOG_D "Change permissions to 755 of files in $p"
LOG_D "Change permissions to $file_mode of files in $p"
find -L "$p" -type f -exec chmod "$file_mode" '{}' +
fi
if [[ -n $user ]] && [[ -n $group ]]; then
@@ -110,7 +110,7 @@ configure_permissions_ownership() {
LOG_D "Change user to ${user} of files and directories in $p"
find -L "$p" \! -user ${user} -exec chown -L "$user" '{}' +
elif [[ -z $user ]] && [[ -n $group ]]; then
LOG_D "Change groupto ${group} of files and directories in $p"
LOG_D "Change group to ${group} of files and directories in $p"
find -L "$p" \! -group ${group} -exec chgrp -L "$group" '{}' +
fi
else