Судо расстается во время долгого сценария

Чтобы восстановить предыдущую версию файла, вы можете использовать Git, который сохраняет версии изменений в файлах.

Некоторые программы делают резервные копии ваших файлов, если вы хотите видеть один, просто откройте Gedit, напишите что-нибудь на документе и сохраните его без расширения. Если вы нажмете CTRL + H на nautilus, вы увидите скрытые файлы, включая резервную копию только что созданного файла.

Но даже при резервном копировании вы не знаете, равна ли резервная версия к текущей версии или нет.

Лучше всего использовать некоторую систему контроля версий, такую ​​как Git, которая записывает все изменения в файл и давайте вернемся к предыдущей версии.

You можно узнать git здесь.

Если вы просто хотите удалить файл навсегда, вы можете использовать здесь

6
задан 5 November 2017 в 00:22

2 ответа

Если сценарий запускается как sudo, он не будет тайм-аут, пока скрипт не закончит работу. Чтобы убедиться, что sudo используется для запуска скрипта, я вставил следующие строки в верхней части моего скрипта:

if [ `whoami` != 'root' ]; then echo "This program needs to be run using 'sudo'" exit fi

Это гарантирует, что сценарий был запущен с помощью sudo, и делает не пытайтесь хранить пароли ...

9
ответ дан 18 July 2018 в 03:53

Если сценарий запускается как sudo, он не будет тайм-аут, пока скрипт не закончит работу. Чтобы убедиться, что sudo используется для запуска скрипта, я вставил следующие строки в верхней части моего скрипта:

if [ `whoami` != 'root' ]; then echo "This program needs to be run using 'sudo'" exit fi

Это гарантирует, что сценарий был запущен с помощью sudo, и делает не пытайтесь хранить пароли ...

9
ответ дан 24 July 2018 в 17:57
  • 1
    Это может быть проблемой, если только часть скрипта должна быть запущена с помощью sudo, а остальное не должно быть (например, создание файлов с правами root в папке пользователя может быть проблематичным). – JAB 5 November 2017 в 01:16
  • 2
    @jab. Вы можете деэскалировать, используя su "$(logname)", например. [F2] – wjandrea 5 November 2017 в 01:32
  • 3
    @wjandrea Предположительно, я мог бы su "$(logname)" -c 'some command that does stuff' и не нарушать разрешения, которые имеет мой скрипт? – Charles Green 5 November 2017 в 01:36
  • 4
    @wjandrea Просто протестировал его в моем маленьком тестовом сценарии - он работает так, как я предполагал! – Charles Green 5 November 2017 в 01:43
  • 5
    Альтернативно, sudo устанавливает переменные среды SUDO_USER, SUDO_UID и SUDO_GID, которые позволяют использовать: sudo -u "#${SUDO_UID:-0}" -g "#${SUDO_GID:-0}" -- COMMAND [ARGS...] – David Foerster 5 November 2017 в 03:12

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

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