Как запустить команду sudo, требующую ввода пароля в фоновом режиме?

Из Википедии: TeamViewer - это программный пакет программного обеспечения для удаленного управления, совместного использования компьютеров, онлайн-встреч, веб-конференций и передачи файлов между компьютерами. Программное обеспечение работает с операционными системами Microsoft Windows, Mac OS X, Linux, iOS и Android. Можно получить доступ к машине, на которой работает TeamViewer, с веб-браузером.

Чтобы установить TeamViewer, загрузите пакет deb для:

64 бит отсюда 32 бит отсюда

Затем:

cd ~/Downloads
sudo dpkg -i teamviewer*.deb

Также есть список многих альтернатив TeamView, таких как LogMein и многие другие, которые вы можете проверить Wikipedia .

1
задан 27 March 2016 в 01:54

2 ответа

Если вы хотите установить timestamp_timeout по крайней мере на что-то вроде 0.02 (1,2 секунды, я бы сказал так же безопасно, как 0) в /etc/sudoers (необходимо в вашем случае, но с по умолчанию или с параметром timestamp_timeout, установленным ничем, кроме 0, вы можете просто сделать следующее), вы можете установить псевдоним, подобный этому, в ~/.bashrc, который не потребует от вас чего-либо сделать, прежде чем запускать команду и который позволит вам сохранить контроль над процессом .:

alias sudo='sudo -v; [ $? ] && sudo'

Трюк здесь - это точка с запятой, которая сделает анализ Bash sudo -v сначала и отдельно, аутентифицируя пользователя, и ограничивает потенциальная фоновая часть команды [ $? ] && sudo, которая проверит, была ли sudo -v успешной, и снова запустил sudo (возможно, сфокусировался на ней).

$ alias sudo='sudo -v; [ $? ] && sudo'
$ sudo -H gedit &
[sudo] password for user:
[1] 19966
$ jobs
[1]+  Running                 [ $? ] && sudo -H gedit &
10
ответ дан 23 May 2018 в 12:34
  • 1
    Расширяет ли sudo -v кэширование учетных данных, даже если кеширование отключено? И, IIRC & lt; для расширения псевдонимов пространство должно быть в конце команды, а не в начале. – muru 26 March 2016 в 19:12
  • 2
    @muru RIght Я забыл, что он timestamp_timeout установлен на 0. И да, я полностью перепутал с расширением псевдонима, на самом деле псевдоним не должен расширяться . Благодарю. – kos 26 March 2016 в 19:27
  • 3
    Разве alias sudo='sudo -v && sudo' не был бы таким же хорошим? – G-Man 26 March 2016 в 23:37
  • 4
    @ G-Man Нет, это работает, потому что ; делает Bash parse sudo -v сначала и отдельно; используя && Bash проанализировал бы как одну команду, так и фон сразу. – kos 27 March 2016 в 00:53

Вы не можете. [F2] немедленно отправляет команду в фоновый режим. То есть в фоновом режиме создается подоболочка, и там выполняется команда. Когда эта команда выдает приглашение, как и в случае sudo, приглашение отображается в фоновом режиме, и вы его никогда не увидите.

Единственный способ - вернуть команду на передний план, предоставить пароль и отправить его обратно на задний план. Например:

$ sudo command &
$ fg
sudo command
[sudo] password for terdon: 

Теперь введите свой пароль, нажмите Enter, а затем нажмите CtrlZ, чтобы отправить его обратно на задний план и bg, чтобы он продолжал работать.

Более простой подход заключается в том, чтобы никогда не использовать & и вместо этого отправлять задания на задний план вручную с помощью Enter Z и bg после их запуска.

Наконец, вы можете захотеть установить время ожидания пароля sudo на что-то вроде 1 или 2 секунд. Это все равно обеспечит вам достаточную безопасность (если вы не пытаетесь защитить от Flash) и позволяете вам запускать такие команды, как ожидалось.

8
ответ дан 23 May 2018 в 12:34
  • 1
    Вспышка крала мой шоколадный торт, поэтому ... ; P – Paranoid Panda 27 March 2016 в 01:11
  • 2
    В эту эпоху уязвимостей и вредоносных программ Adobe, которые заражают прошивку, необходимо опасаться Flash. – Damian Yerrick 27 March 2016 в 01:29
  • 3
  • 4
    С другой стороны, действительно ли можно установить тайм-аут на секунды? man sudoers говорит, что значение timestamp_timeout должно указывать минуты с возможной дробной частью (что, кстати, делает ошибку sudo, если я пытаюсь указать ее, а не уверен, почему). – kos 27 March 2016 в 01:51
  • 5
    @kos звучит как да. 2.5 отлично работает здесь (Arch, sudo версия 1.8.15). – terdon♦ 27 March 2016 в 02:18

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

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