以一个用户身份创建文件,然后以另一个用户身份进行编辑

时间:2019-05-11 22:48:44

标签: postgresql ubuntu psql chmod

我正在编写一个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用户身份访问此文件,但错误仍然存​​在,所以我对发生的事情感到困惑

1 个答案:

答案 0 :(得分:0)

在您尝试放置“ echo”命令的第二行,请使用:

/var/lib/postgresql/10/main/recovery.conf

以/开头