我正在编写一个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用户身份访问此文件,但错误仍然存在,所以我对发生的事情感到困惑
答案 0 :(得分:0)
在您尝试放置“ echo”命令的第二行,请使用:
/var/lib/postgresql/10/main/recovery.conf
以/开头