更新脚本
This commit is contained in:
@@ -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_* : 容器使用的全局变量
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user