宝塔用户_wkknnt 发表于 2021-2-23 16:22:38

【已收录】PostgreSQL管理器 重启服务报错

1.面板版本:7.6.12
2.操作系统版本:Ubuntu 20.04

3.浏览器版本:Firefox 85
4.app版本:PostgreSQL管理器 1.3,安装 postgresql 12.4

操作步骤:
1、打开 PostgreSQL管理器 1.3,


2、点击重启按钮,然后报错。
su: 警告:无法更改到 /home/postgres 目录: 没有那个文件或目录
could not change directory to "/www/server/panel": 权限不够

宝塔用户_wkknnt 发表于 2021-2-25 16:38:15

谢花郎 发表于 2021-2-25 16:08
方便发机器过来看看?

找到原因了


在Ubuntu 20.04下面
useradd -g 新增用户的时候,不会创建用户的home目录。
百度了一下,
useradd 默认不会创建用户主目录的,要加上-m


原来代码:
# groupadd t001
# useradd -g t001 t001修改为
useradd -m t001即可。
----------------------------------
代码修改
/www/server/panel/plugin/pgsql_manager/pgsql_install.sh

37 user=postgres
38 group=postgres
39
40 #create group if not exists
41 egrep "^$group" /etc/group >& /dev/null
<font color="Red">42 #if [ $? -ne 0 ]
43 #then
44 #      groupadd $group
45 #fi</font>
46
47 #create user if not exists
48 egrep "^$user" /etc/passwd >& /dev/null
49 if [ $? -ne 0 ]
50 then
<font color="Red">51   useradd -m $user</font>
52 fi
成功建立 /home/postgres 文件夹

备注:
我的系统是ubuntu 20.04, 其他版本的系统不清楚是否适用。

谢花郎 发表于 2021-2-23 20:37:34

您好,ssh内执行下面命令看看是否存在postgres用户的目录。
同时检查一下/www/server/panel目录权限,有无使用其他防护软件。

cat /etc/passwd | grep postgres

宝塔用户_wkknnt 发表于 2021-2-25 14:28:32

谢花郎 发表于 2021-2-23 20:37
您好,ssh内执行下面命令看看是否存在postgres用户的目录。
同时检查一下/www/server/panel目录权限,有无 ...

1、执行命令:cat /etc/passwd | grep postgres
显示:postgres:x:1003:1003::/home/postgres:/bin/sh
2、/home/postgres,这个目录不存在

宝塔用户_wkknnt 发表于 2021-2-25 14:31:47

3、检查目录/www/server权限。

4、有无使用其他防护软件
==>没有使用任何防护软件。
5、备注:
==>机器里面的 PostgreSQL软件,是通过PostgreSQL管理器1.3去安装的,是不是在安装的时候,没有创建 /home/postgres这个目录呢(是不是宝塔里面要把这个脚本给添加上?)?
==> /www/server/panel 目录的权限为600,所有者是root。通过PostgreSQL管理器1.3去重启服务的时候,是不是调用的的这个进程的su没有执行成功?导致不能访问panel。




谢花郎 发表于 2021-2-25 14:38:21

1.面板安装psql时是会自动创建对应目录,创建postgres用户时就会生成在home目录下生成postgres目录。
此postgres目录作为postgres用户的家目录。

2.默认是600权限,可执行下面命令看看
lsattr /www/server;ll /etc/init.d/

宝塔用户_wkknnt 发表于 2021-2-25 14:45:13

谢花郎 发表于 2021-2-25 14:38
1.面板安装psql时是会自动创建对应目录,创建postgres用户时就会生成在home目录下生成postgres目录。
此pos ...

刚才做了测试。
手动创建/home/postgres,并赋予postgres的权限,
然后通过PostgreSQL管理器1.3 重启服务就不会报错,正常重启了。
怀疑在安装PostgreSQL管理器1.3或者PostgreSQL的时候,宝塔没有同步创建 /home/postgres目录导致的。

谢花郎 发表于 2021-2-25 14:47:52

宝塔用户_wkknnt 发表于 2021-2-25 14:45
刚才做了测试。
手动创建/home/postgres,并赋予postgres的权限,
然后通过PostgreSQL管理器1.3 重启服务 ...

已经给你说明,创建postgres用户会自动生成一个名为postgres目录的。您可自己手动是useradd创建一个用户就知道了,并非是由我们生成的。

谢花郎 发表于 2021-2-25 14:49:01

这个是我做的测试

宝塔用户_wkknnt 发表于 2021-2-25 14:53:18

谢花郎 发表于 2021-2-25 14:47
已经给你说明,创建postgres用户会自动生成一个名为postgres目录的。您可自己手动是useradd创建一个用户 ...

创建postgres用户会自动生成一个名为postgres目录的,这个是知道的。
现在是:
1、postgres这个用户,是在什么时候创建的呢?
1.1 在安装postgres管理器1.3的时候?
1.2 通过postgres管理器安装postgres12.4的时候?
1.3 需要用户手动创建?
2、系统里面已经有了一个postgres用户。
通过命令 cat /etc/passwd | grep postgres可以看到
postgres:x:1003:1003::/home/postgres:/bin/sh
这个用户是什么时候创建的呢?
另外再这个用户创建的时候,为什么不同步创建 /home/postgres目录?



谢花郎 发表于 2021-2-25 15:02:14

宝塔用户_wkknnt 发表于 2021-2-25 14:53
创建postgres用户会自动生成一个名为postgres目录的,这个是知道的。
现在是:
1、postgres这个用户,是 ...

安装postgres内安装PgSQL版本时就会创建,为什么不存在该用户的目录,这边也不清楚你环境下有什么设置。

安装脚本内是有写的,并不会犯初级错误。

宝塔用户_wkknnt 发表于 2021-2-25 15:55:44

谢花郎 发表于 2021-2-25 15:02
安装postgres内安装PgSQL版本时就会创建,为什么不存在该用户的目录,这边也不清楚你环境下有什么设置。
...

刚才做了实验,手动删除刚才创建的 /home/postgres,手动删除postgres用户。
重新通过postgres管理器1.3,安装postgressql,还是不能创建postgres目录。
附上安装日志的不正常部分。


我用的系统是 Ubuntu20.04
这个是完整log



谢花郎 发表于 2021-2-25 16:08:14

宝塔用户_wkknnt 发表于 2021-2-25 15:55
刚才做了实验,手动删除刚才创建的 /home/postgres,手动删除postgres用户。
重新通过postgres管理器1.3 ...

方便发机器过来看看?

宝塔用户_wkknnt 发表于 2021-3-4 15:20:37

这个确实是宝塔的bug,并且提供了处理思路,
感觉给宝塔币了

大炮运维V587 发表于 2021-3-5 09:54:44

宝塔用户_wkknnt 发表于 2021-2-25 16:38
找到原因了




感谢您的反馈,这边已经记录该问题,后续会对此进行修复
页: [1] 2
查看完整版本: 【已收录】PostgreSQL管理器 重启服务报错