Почему это обходит пароль SUDO?

У меня есть сценарий bash, который я использую для автоматизации проверки SVN. Содержимое файла:

#!/bin/bash
cd /var/www-cake
sudo svn checkout file:///usr/local/svn/bash_repo/repo/

Затем, когда я дважды щелкнул файл, он спросит меня, что делать, я бы нажал кнопку «Запустить в терминале», а затем выскочил терминал и спросите меня пароль SUDO. Я бы ввел его, скрипт выполнил бы и терминал закроется.

Я хотел дать какое-то указание на то, что сценарий успешно запущен, поэтому я отредактировал свой файл так:

#!/bin/bash
cd /var/www-cake
sudo svn checkout file:///usr/local/svn/bash_repo/repo/
echo "Head revision has been pushed to live server"

Я ожидал, что терминал останется открытым и сообщит мне сообщение позже. К моему удивлению, теперь он открывается и сразу же закрывается. Скрипт выполняется, и мне больше не нужно вводить пароль SUDO.

Правильно ли это? Я не понимаю, почему это происходит, похоже, проблема безопасности.

1
задан 29 April 2015 в 20:45

2 ответа

Что происходит, когда вы запускаете скрипт непосредственно с терминала? Обычно, если пароль sudo был введен, как только он запомнится на 15 минут. Если вы запустите его графически, подсказка терминала закроется после полного выполнения. У меня нет SVN-репо для игры, однако я сделал аналогичный тест, который соберет вход пользователя и коснется файла с помощью этого имени.

#!/usr/bin/env bash

echo -n "Hello, enter the file name: "
read NAME
touch $NAME
echo "All done"

При выполнении с терминала:

Затем дважды щелкнут:

alt text

Приглашение закрывается, когда полный, но делает то, что требуется.

5
ответ дан 25 May 2018 в 23:45

Чтобы открыть приглашение после выполнения скрипта, вы можете попробовать две вещи:

Добавить команду read в качестве последней строки. Чтобы создать пусковую установку, которая выполняет команду в терминале и держит окно открытым, создайте профиль для gnome-терминала, например Hold, который делает именно это (просмотрите параметры профиля) и используйте следующее.
gnome-terminal --window-with-profile="Hold" -e "/path/to/script"
3
ответ дан 25 May 2018 в 23:45

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

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