【发布时间】:2019-09-29 09:08:42
【问题描述】:
我正在编写一个 shell 来自动化一个进程,这个 shell 将以 root 或其他用户身份运行,但不以 postgres 用户身份运行(这意味着用户将只运行脚本)
我作为 postgres 用户在测试时所做的是
touch /var/lib/postgresql/10/main/recovery.conf
sudo nano recovery.conf (wrote some content )
ctrl +O
但是,每当我尝试以其他用户(包括 root)身份在我的 shell 中使用以下行来执行此操作时
sudo -H -u postgres bash -c "touch /var/lib/postgresql/10/main/recovery.conf"
该文件是作为我想要的 postgres 用户创建的,然后我运行
sudo -H -u postgres bash -c echo "content" > /var/lib/postgresql/10/main/recovery.conf
得到一个
-bash: /var/lib/postgresql/10/main/recovery.conf: Permission denied
为什么我可以创建文件但不能在上面放内容?
我已经尝试使用 chmod 授予 775 和 777 权限
chmod 775 recovery.conf
作为 psotgres 用户,我得到了
-rwxrwxr-x 1 postgres postgres 133 May 11 22:11 recovery.conf
以 postgres 用户身份访问此文件,但错误仍然存在,所以我对发生的事情感到困惑
【问题讨论】:
标签: postgresql ubuntu psql chmod