Запустите сценарий оболочки как другой пользователь, у которого нет пароля

Как минимум для Ubuntu 14.04 существует плагин регулярного выражения, доступный из пакета gedit-developers-plugins. Если этот пакет не работает для вас, так как он не работает для меня, вот решение.

1
задан 18 April 2018 в 20:14

3 ответа

Если вы хотите использовать su вместо sudo, я считаю, что вы можете использовать что-то вроде этого:

su - <username> -c "<commands>"
- будет имитировать логин указанного пользователя -c, сообщает ему, что вы хотите запустить команду

ps. К сожалению, я не могу установить ruby ​​с помощью rvm с помощью этого метода, но это, вероятно, не связано.

83
ответ дан 24 May 2018 в 22:16
  • 1
    Мне нужно было добавить sudo к началу, иначе он попросил меня ввести мой пароль. – IanVaughan 20 July 2015 в 15:42
  • 2
    Это определенно не работает без sudo. с sudo он работает, например: sudo su - www-data -c "touch /tmp/test" успешно создал файл в виде www-данных – rubo77 24 September 2016 в 11:41
  • 3
    Для использования "su" вам нужен пароль root, точка & sudo " заключается в том, чтобы избежать этого. Если у вас есть пароль root с помощью «su " как указано выше, должно работать нормально. – Samuel Åslund 30 June 2017 в 10:51

Ответы, приведенные выше, действительно полезны для меня, но для ответа на реальный вопрос ...

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

Использование:

ps -ef | grep <command-name>

Выход должен содержать ваш скрипт и фактический пользователь, выполняющий его. Люди в BSD-подобных системах, например. MAC может найти схожую информацию с:

ps aux | grep <command-name>
5
ответ дан 24 May 2018 в 22:16

У меня была та же проблема. Просто введите команду screen -dmS testscreen, это приведет к созданию отдельного экрана в вашей учетной записи пользователя, отличной от sudo, а затем вы сможете его зарегистрировать и проверить, есть ли этот экран на screen -ls.

2
ответ дан 24 May 2018 в 22:16

Другие вопросы по тегам:

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