1

Я вхожу в Linux, используя мой идентификатор, например, "A". затем я буду выполнять sudo для пользователя "B" без ввода пароля, после чего я скопирую некоторые файлы из папки X в Y-папку, используя пользователя SUdo "B".

Я пытаюсь выполнить это действие с помощью сценария оболочки, чтобы поместить его в cronjob ... пока что не повезло.

Любая помощь по этому вопросу будет действительно оценена ...

это то, что я пытаюсь ...

#!/bin/sh
sudo /usr/local/sbin/deploy
cp -r /tmp/test /tmp/deploy

3 ответа3

1

Вы также должны запустить cp с помощью sudo . В противном случае, deploy создает файлы с владельцем B а затем cp не может их прочитать (поскольку оболочка возвращает вас первоначальному пользователю, когда sudo в вашем скрипте завершается).

Или запустите chmod с sudo чтобы сделать файлы читаемыми для A а затем сделайте копию.

0

sudo только запускает команду в командной строке, а затем возвращает вас обратно к учетной записи инициатора. если вы хотите запускать несколько команд от имени другого пользователя, было бы лучше создать сценарий и запустить этот сценарий с помощью sudo.

0

Судо это интерактивная команда. Использование его в заданиях cron не имеет смысла. Либо вы создаете сценарий суперпользователя, чтобы скопировать все файлы и затем изменить владельца, либо запустить сценарий самим нужным пользователем.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .