Запустить сценарий bash от имени пользователя root, у которого есть команда sudo в сценарии

Решение - рекомендовано лично

Взято из Что такое Ubuntu PPA и почему я хочу его использовать? [Разъяснение технологии] :

Вот где вступают в силу PPA. PPA или личный архив пакетов - это набор программного обеспечения, не включенного в Ubuntu по умолчанию. Обычно эти репозитории сосредоточены на одной программе, но они могут включать больше в зависимости от человека, поддерживающего их. PPA может сосредоточиться на неизданном программном обеспечении, таком как Hotot, лучший клиент Twitter для Linux. Он также может включать обновления для программного обеспечения, которое уже в Ubuntu, например Firefox.

В любом случае, PPA предоставляют обновления для вашего любимого программного обеспечения гораздо быстрее, чем сама Ubuntu. Это здорово, потому что вы можете решить, какое программное обеспечение вы хотите обновлять, а остальное оставить Ubuntu.

После установки нового программного обеспечения обновления будут приходить к вам через Диспетчер обновлений Ubuntu

Для всех практических целей читатели могут заменить все экземпляры Ubuntu на Debian в приведенной выше цитате. Таким образом, та же команда для добавления репозитория, которая существует в Ubuntu, существует и в Debian, а именно: add-apt-repository .

Имея это в виду, мы можем добавить PPA для Ubuntu XFCE Maintainers, который действительно содержит XFCE 4.12, с:

add-apt-repository 'deb http://ppa.launchpad.net/xubuntu-dev/xfce-4.12/ubuntu'
add-apt-repository 'deb-src http://ppa.launchpad.net/xubuntu-dev/xfce-4.12/ubuntu'

Местоположение Launchpad для команды «Xubuntu Developers» .

Я согласен с таким подходом к двоичной системе, так как я видел слишком много пользователей, когда компиляция в первый раз идет не так, но мы рассмотрим это позже ...


Решение 2. Скомпилируйте свое.

Установите инструменты, необходимые для сборки:

  • sudo apt-get install build-essential fakeroot devscripts dpkg-dev

Настройте Apt так, чтобы он содержал хотя бы один исходный репозиторий, т.е.:

  • /etc/apt/sources.list : deb-src http://http.us.debian.org/debian unstable main

Создайте каталог в том месте, где у вас есть права на запись сохраните исходный код:

  • mkdir -pv ~ / src / debian; cd ~ / src / debian

Затем мы должны определить порядок сборки. См. Сборка Xfce для независимого подхода к сборке:

  1. libxfce4util
  2. xfconf
  3. libxfce4ui, garcon, libxfcegui4
  4. exo
  5. xfce4-panel
  6. thunar
  7. xfce4 настройки, xfce4-session, xfdesktop, xfwm4, xfce-utils 2), xfce4-appfinder,…

Новое Комментарий Пера Стивена Китта:
- Загрузить все из архивы из XFCE Archive исходных пакетов в каталог debian , используя: apt-get source , следя за сборкой порядок, указанный выше.

  • Исходный пакет должен содержать собственный каталог debian , и после извлечения каждого пакета макет должен выглядеть следующим образом:
~/src/debian/  
    -- exo-0.10.3
       -- debian
    -- garcon-0.4.0
       -- debian
    -- gtk-xfce-engine-2.10.0
       -- debian
    -- etc

Вы должны убедиться, что приведенная выше структура является результатом извлечения исходного дерева. Мы остаемся в этом дереве до завершения сборки.

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


Пример для шага 1 порядка сборки:
cd libxfce4util-4.12.1 && sudo apt-get build-dep libxfce4util Обратите внимание, что build-dep может дать сбой, хотя этого не должно быть, потому что, как прокомментировал Стивен Китт, теперь мы используем «Официальные исходные коды Debian».

Если sudo apt-get build-dep не разрешил все зависимости, теперь мы должны установить недостающие зависимости. Мы делаем это apt-get install Повторно запускаем sudo apt-get build-dep . Промыть и повторить.

Чтобы собрать пакет, используйте debuild -b -uc -us . Если все пойдет хорошо, у вас будет пакет .deb в дереве исходных текстов, который вы можете установить с помощью dpkg -i


Word of Caution

Когда вы закончите этот процесс, Apt не будет поддерживать этот пакет, поэтому каждый раз, когда выходит обновление, вы должны повторять процесс сборки, указанный выше. Если apt-get build-dep когда-либо заявляет, что любая часть вашей инструментальной цепочки требует обновления, glibc , gcc , binutils и т. Д. Нуждаются в обновлении ОСТАНОВИТЬ ЗДАНИЕ .


Ссылки

Debian Wiki: BuildingTutorial
Сборка Xfce
SegFault: Как собрать и установить последнюю версию Cinnamon из Git
AskUbuntu: Как использовать 'apt' для получения исходного кода, а затем отдельно compile

0
05.04.2018, 18:22
2 ответа

Если вы можете отредактировать сценарий и удалить команды sudo, запуск сценария от имени пользователя root должен работать должным образом.

Установка команды sudoтакже может быть способом добиться успешного выполнения команды.

apt install sudo
3
28.01.2020, 02:15

Я бы попробовал запустить это как -не root-пользователь. Эти конструкции безопасности существуют не просто так.

Если вы уже root, sudoизбыточен. Сценарии часто используют «sudo», чтобы эффективно спросить обычных пользователей: «Вы действительно уверены, что хотите это сделать?», или чтобы провести различие между изменениями, сделанными для конкретного пользователя, и изменениями, сделанными для всей системы -. Поэтому, если вы просто возитесь с тестовым блоком, сделайте это, но обязательно убедитесь, что вы понимаете, в частности, что делает строка «sudo».

Я также хотел бы предостеречь вас от использования вашей учетной записи root для широкого использования вне административных функций. Если вы действительно хотите использовать библиотеку, которую устанавливаете, для разработки программного обеспечения, имеет смысл иметь пользователя без прав администратора -, которого вы будете использовать в качестве ежедневного входа в систему. См. здесь , чтобы узнать, почему регулярно входить в систему для запуска приложений с правами root — плохая идея. Понимание этого должно быть особенно важно, если вы заинтересованы в безопасности.

3
28.01.2020, 02:15

Теги

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