Я хочу автоматически запускать свой скрипт от имени другого пользователя при запуске или перезагрузке системы

Помимо моего предыдущего ответа , существует также команда csplit, чтобы разбить файл таким же образом, а затем использовать команду pasteдля получения желаемого результата.

csplit -zs -f outputfile inputfile '/^List/' '{*}'
paste outfile*
  • '/^List/'— это шаблон для сопоставления и разбиения файла на следующий новый файл
  • '{*}'повторить шаблон столько раз, сколько возможно
  • -zиспользуется для удаления пустых выходных файлов;и -sиспользуется, чтобы не печатать подсчет размеров выходных файлов
  • -fиспользуется для определения пользовательского префикса выходного файла ##, где ##по умолчанию 2 цифры, вы можете определить его с помощью-n N(N — количество цифр в суффиксе после определенного префикса)

0
16.09.2019, 14:16
2 ответа

Первые два способа, которые я могу придумать, это:

1] Просто используйте sudo, это сделано для буквального запуска программы от имени другого пользователя. Запустите строку ниже как root, например, где «root» запускает программу, как если бы это был пользователь «newUser»`

root@foo $> sudo -u newUser whoami 
=> newUser 

Затем не забудьте прочитать man sudo.

2] Могут быть различия в дистрибутивах, но в системе, которую я использую, у каждого пользователя свой crontab. Итак, если вы хотите, чтобы пользователь newUserзапускал что-то при загрузке.

newUser@foo $> crontab -e

и вы вставляете туда свою строку @reboot.

1
28.01.2020, 02:22

Задание cron будет выполняться от имени пользователя, которому принадлежит crontab.

Это означает, что вы должны добавить задание @rebootв crontab newUser.

Вы можете сделать это двумя способами.:

  1. От имени root запустите crontab -u newUser -e, чтобы добавить расписание задания в crontab newUser, или
  2. Войдите как newUserи запустите crontab -e, чтобы добавить расписание.

Как обычный дневной пользователь с -по -, вы можете выполнять действия с первого по

sudo crontab -u newUser -e

или со второго по

sudo -u newUser crontab -e

(при условии, что вашему обычному пользователю разрешено использоватьsudo -u newUser).

2
28.01.2020, 02:22

Теги

Похожие вопросы