Как перенаправить файл с определенным пользователем для создания этого файла - PullRequest
0 голосов
/ 18 июня 2019

В своих скриптах я иногда перенаправляю вывод из терминала в файл или что-то в этом роде. Иногда я указываю пользователя для команды, но этот пользователь не работает на другой стороне перенаправления.

sudo -i
# We are now the root user.

sudo -u abc echo 'Something...' > a_file.txt

Даже если эхо выполнено от имени пользователя abc, файл будет создан от имени пользователя root.

Я понимаю, почему это происходит, и я надеялся, что кто-то знает способ заставить его работать так, как нужно, чтобы файл a_file.txt создавался так, чтобы его владельцем был пользователь abc.

1 Ответ

1 голос
/ 18 июня 2019

Вы можете запустить несколько команд в оболочке sudo, а затем все они будут выполняться под одним и тем же пользователем:

sudo -u abc sh -c 'echo sth > a_file.txt'

Или вы можете использовать тройник:

sudo -u abc sthRequiringSudo | sudo -u abc tee a_file.txt >/dev/null

Или вы можете передать свои команды стандартному вводу оболочки sudo:

sudo -u abc -s <<< "echo sth >a_file.txt"

Вы можете даже отправлять команды из нескольких строк на стандартный ввод оболочки sudo:

sudo -u abc -s << EOF
echo sth >a_file.txt
echo sthelse >>a_file.txt
EOF
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...