Создайте файл как один пользователь и отредактируйте его как другой пользователь - PullRequest
0 голосов
/ 12 мая 2019

Я пишу оболочку для автоматизации процесса, эта оболочка будет запускаться от имени пользователя root или от имени другого пользователя, но не от имени пользователя postgres (имеется в виду, что пользователь просто запустит скрипт)

То, что я сделал как postgresпользователь во время тестирования был

touch /var/lib/postgresql/10/main/recovery.conf
sudo nano recovery.conf (wrote some content )
ctrl +O

Однако всякий раз, когда я пытаюсь сделать это, используя следующие строки в моей оболочке в качестве другого пользователя (включая пользователя root)

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

Почему я могу создать файл, но не помещать в него содержимое?

Я уже пытался выдать разрешения 775 и 777, используя chmod

chmod 775 recovery.conf

в качестве пользователя psotgres, и я получаю

-rwxrwxr-x 1 postgres postgres  133 May 11 22:11 recovery.conf

этому файлу в качестве пользователя postgres, но ошибка все еще сохраняетсятак что я не понимаю, что происходит

1 Ответ

0 голосов
/ 12 мая 2019

Во второй строке, где вы пытаетесь ввести команду "echo", используйте:

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

С / в начале

...