У меня есть Bash для Windows (подсистема Linux), и я нахожусь в процессе создания некоторых сценариев PowerShell (просто для развлечения) для приложений, которые я запускаю в Linux, поэтому я могу просто запускать их из
Все это виртуализировано и находится в автономном режиме, поэтому я действительно не ищу лекцию по безопасности, поскольку я уже знаю все тонкости этого, просто хочу, чтобы это работало как забавный обучающий опыт. nce ;)
Это то, что я придумал, но есть 2 проблемы:
1: Мой скрипт не будет продолжаться после первой строки (поэтому powershell попадет в bash, но не выполнит последующие команды).
2: Мне нужно ввести свой пароль root, и я просто хочу, чтобы он либо пропустил это, либо просто заполнил его для меня, поскольку некоторым приложениям требуется root-доступ.
bash (powershell command to drop into the bash shell)
export DISPLAY=:0 (necessary for gui apps)
sudo (app name)
(app asks for password)
Password
Итак, если я запускаю эти команды одну за другой, все работает нормально (см. прикрепленный скриншот из менеджера пакетов synaptic и powershell), но сейчас я просто пытаюсь автоматизировать это, так как я ленивый ленивец :D
Решение разбивается на две части.
Процесс прост. Вы должны передать весь скрипт в качестве аргумента для bash.
bash -c 'export DISPLAY=:0 ; sudo <app_name>'
Я не использую powershell. Поэтому избегайте соответствующих частей в соответствии с синтаксисом powershell в приведенной выше строке.
Для этого вам необходимо разрешить вход без пароля в файле sudoers
, расположенном по адресу /etc/sudoers
. Введите следующий фрагмент кода (замените user
на ваше имя пользователя
) в конце /etc/sudoers
, используя sudo nano /etc/sudoers
.
user ALL=(ALL) NOPASSWD: ALL
Это, однако, изменит поведение sudo по умолчанию, и указанный пользователь никогда не будет запрашивать пароль при использовании sudo