Возможно ли запустить скрипт bash, что найти с помощью команды find, с другим пользователем?

#bash #shell

#bash #оболочка

Вопрос:

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

Я пробовал эти команды:

     sudo -H -u otherUser find . -maxdepth 3 -type f -name '*myBashFile' -execdir {} ;
    find . -maxdepth 3 -type f -name sudo -H -u otherUser '*myBashFile' -execdir {} ;
    sudo -H -u otherUser bash -c 'find . -maxdepth 3 -type f -executable -name '*myBashFile' -execdir {} ;'
  

Я всегда получал ‘command not found’ для моей собственной команды в скрипте bash.

Комментарии:

1. Имеет ли другой пользователь доступ к вашей собственной команде?

2. Да, это так, если я запускаю скрипт с этим пользователем, все работает нормально

3. как вы становитесь этим пользователем? находится ли ваша собственная команда в ПУТИ к другому пользователю?

4. используйте полный путь к скрипту bash, в скрипте bash используйте полный путь к команде

5. рассматриваемый «код» отличается от реальности до такой степени, что ответ, вероятно, невозможен

Ответ №1:

Спасибо за ответы, ключом был ПУТЬ, это окончательный код, который работает:

 #!/usr/bin/env bash
export PATH=$PATH:/path/of/the/command/
echo otherUserPassword | su -c 'find . -maxdepth 3 -type f -executable -name '*myBashFile' -execdir {} ;' otherUser