Все можно настроить через файл /etc/sudoers . Вот способ как можно перезапускать все службы ( sudo service . ) от пользователя userlogin .
1. Создаем специальную группу для запуска, которой дадим необходимые права:
sudo groupadd sudo-restrict
2. Добавляем пользователя userlogin в эту группу:
sudo usermod -aG sudo-restrict userlogin
3.
Редактируем файл /etc/sudoers с помощью visudo :
sudo visudo
Необходимо ставить в конце следующее:
%sudo-restrict ALL=(ALL) NOPASSWD: /usr/sbin/service
/usr/sbin/service — путь к программе необходимо указывать абсолютный. В вашем случае это будет путь к вашему скрипту. Я использую служебную команду service
4. Проверяем
Заходим под пользователем userlogin и выполняем
sudo service mysqld restart
Сервис перезапустится без ввода пароля.
PS
В конце /etc/sudoers можно раскомментировать эту строку: #includedir /etc/sudoers.d , и записывать все настройки в отдельные файлы в каталоге /etc/sudoers.d
How to enable root login(GUI) in Ubuntu 20.04 | 2021
Отслеживать
ответ дан 11 апр 2019 в 5:34
Total Pusher Total Pusher
6,212 13 13 серебряных знаков 30 30 бронзовых знаков
добавлю, что группу можно не создавать, а дать права конкретному пользователю.
11 апр 2019 в 6:45
Я согласен с ответом Total Pusher, но сам обычно использую более простой и универсальный способ:
- Запускаю sudo visudo
- Добавляю в конец username ALL=(ALL) NOPASSWD: ALL (укажите свой username)
- Сохраняю
Разница в том, что никаких особых групп и пользователей я не создаю и в результате можно запускать любые скрипты и команды без пароля (мне достаточно того, что юзер вводит пароль при запуске сессии).
UPD: Как метко подметил andreymal, этот способ создаёт дыру в безопасности системы и использовать его на постоянной основе не рекомендуется.
Источник: ru.stackoverflow.com
sudo в Ubuntu
В Ubuntu 16.04 LTS, а также Ubuntu 14.04, по умолчанию отключен пользователь root.
Все административные действия выполняются с помощью команды sudo.
Разберемся на примере,
Запустим Midnight Commander, от своего пользователя
Запустился mc, в своей папке /home/user мы можем делать все что угодно, в том числе удалять файлы. Но если перейти в каталог, в котором обычно содержаться конфигурационные файлы /etc, и открыть на редактирование какой-либо файл, то сохранить его не получиться, нужно иметь права root. Соответственно и сам mc надо запустить от root. Чтобы это сделать используется команда sudo.
sudo mc
Теперь mc запущен от пользователя root и можно делать все что угодно, но нужно быть предельно осторожным, чтобы не удалить ничего лишнего. По этому, собственно, и отключен root, по умолчанию.
Как Получит Права Супер Пользователя root | linux ubuntu обзор для начинающих
Обычно чтобы отредактировать какой-либо файл достаточно выполнить комаду
sudo mcedit config.conf
и откроется редактор с правами root для конкретного файла. Это намного безопаснее.
Также существует команда для запуска графических программ с правами администратора, например, nautilus. Сочетанием клавиш Alt + F2, надо вызвать диалог запуска программ, и туда вписать нашу команду, запуска nautilus c правами root.
gksu nautilus
Можно запустить тот же nautilus с помощью sudo из терминала. Но это не удобно, до закрытия программы нельзя будет закрывать и терминал.
Источник: goodigy.ru
Как запустить программу с правами root ubuntu
В данном материале описываются важные различия между популярными режимами работы с приложениями от лица пользователя root, а именно, режимами, связанными с использованием утилит su, sudo, pkexec, а также псевдопротокола admin://.
Основная мысль данного материала заключается в следующем: вы должны всегда использовать утилиту pkexec и псевдопротокол admin:// для запуска приложений с графическим интерфейсом, которые должны работать от лица пользователя root. Утилиты su и sudo должны использоваться исключительно для запуска утилит с интерфейсом командной строки от лица пользователя root. В случае пренебрежения этим простым правилом приложения с графическим интерфейсом могут изменить права доступа к файлам конфигурации в домашней директории, что приведет к появлению ряда сложно диагностируемых проблем.
Если вас интересуют подробности, вам стоит продолжить чтение.
Запуск файлового менеджера с привилегиями пользователя root
Использование файлового менеджера с привилегиями пользователя root в какой-то степени является рискованным мероприятием, так как вы можете удалить любые файлы и тем самым нарушить работоспособность системы. Тем не менее, в некоторых случаях это просто необходимо.
В таких случаях следует запускать файловый менеджер с использованием встроенного механизма защиты для того, чтобы, по крайней мере, случайно не нарушить права доступа к файлам в файловой системе. Так как используемый по умолчанию файловый менеджер глубоко интегрирован в систему, его использование может быть связано с определенными проблемами.
Для работы с файлами с привилегиями пользователя root следует в первую очередь использовать встроенный механизм открытия системных файлов вашего файлового менеджера. Если этот механизм не позволяет выполнить необходимые действия, вам придется запустить файловый менеджер от лица пользователя root с помощью утилиты pkexec и терминала.
Например, для запуска файлового менеджера Nemo из состава дистрибутива Linux Mint Cinnamon может использоваться следующая команда:
Для запуска файлового менеджера Caja из состава дистрибутива Linux Mint Mate — следующая команда:
Для запуска файлового менеджера Thunar из состава дистрибутива Linux Mint Xfce и Xubunut — следующая команда:
Наконец, для запуска файлового менеджера Nautilus из состава дистрибутива Ubuntu и Fedora Workstation — следующая команда:
Примечание: закрытие окна терминала приведет к закрытию окна запущенного с помощью него файлового менеджера, поэтому терминал всегда должен быть открыт! Не закрывайте окно терминала до того момента, пока вы не выполните все необходимые действия.
Запуск текстового редактора с привилегиями пользователя root
Для редактирования конфигурационных файлов системы вам придется запустить файловый менеджер с привилегиями пользователя root. Для этой цели может использоваться псевдопротокол admin://.
Предположим, что нам нужно отредактировать файл конфигурации /etc/default/grub.
В дистрибутиве Linux Mint (Cinnamon, Mate, Xfce) для этой цели может использоваться следующая команда:
В дистрибутивах Ubuntu и Fedora Workstation — следующая команда:
Примечание: три слэша в командах — не опечатка; так и должно быть. При первом использовании псевдопротокола admin:// в рамках пользовательской сессии вам будет предложено ввести ваш пароль дважды; это также нормально. Ну и разумеется, закрытие окна терминала приведет к закрытию окна текстового редактора, поэтому стоит держать его открытым до завершения редактирования файла конфигурации.
Дополнительные подробности
Для работы с утилитой sudo вам нужно быть членом группы пользователей sudo. В случае утилит su, pkexec и псевдопротокола admin:// членства в дополнительных группах не требуется.
При использовании утилиты pkexec и псевдопротокола admin:// вам будет предложено ввести ваш пароль с помощью диалогового окна графической оболочки. В случае утилит sudo и su вы должны будет вводить пароль с помощью терминала.
Важные различия
1. Утилита pkexec и псевдопротокол admin:// предусматривают установку безопасного значения переменной окружения $HOME, а именно, пути к домашней директории пользователя root, следовательно, запущенное с помощью них приложение не сможет незаметно нарушить права доступа к файлам конфигурации из вашей домашней директории. Кроме того, они предусматривают установку безопасного значения переменной окружения $XAUTHORITY, а именно, пути к новому файлу, следовательно, запущенное с помощью них приложение будет работать со своей авторизацией оконной системы.
2. Утилита sudo не предусматривает установки значений двух перечисленных выше переменной окружения, а вместо этого использует путь к вашей домашней директории и вашему файлу авторизации оконной системы. По этой причине утилита sudo не должна использоваться для запуска приложений с графическим интерфейсом, ведь они всегда используют переменные окружения, такие, как $HOME.
3. Команда sudo -i позволяет установить безопасное значение переменной окружения $HOME, но не позволяет установить безопасного значения переменной окружения $XAUTHORITY, поэтому все запускаемые с помощью нее приложения запускаются без своей авторизации оконной системы. По этой причине она не должна использоваться для запуска приложений с графическим интерфейсом. Кроме того, она не завершает сессию пользователя root после завершения работы запущенного с помощью нее приложения, что небезопасно.
4. Команда su — выполняет ту же операцию, что и sudo -i. Единственное различие данных команд состоит в том, что в случае использования команды su — вам придется ввести пароль пользователя root, а в случае использования команды sudo -i — свой пароль.
5. Команда sudo -H также позволяет установить безопасное значение переменной окружения $HOME, но не позволяет установить безопасного значения переменной окружения $XAUTHORITY, поэтому все запускаемые с помощью нее приложения запускаются без своей авторизации оконной системы. По этой причине она также не должна использоваться для запуска приложений с графическим интерфейсом.
6. Утилита su устанавливает безопасное значение переменной окружения $HOME, но не устанавливает безопасного значения переменной окружения $XAUTHORITY, поэтому все запускаемые с помощью нее приложения запускаются без своей авторизации оконной системы. По этой причине она также не должна использоваться для запуска приложений с графическим интерфейсом. Вообще, при использовании данной утилиты без каких-либо параметров запуск приложений осуществляется с использованием большинства переменных окружения текущего пользователя.
Быстрое получение списка пользователей группы sudo
Вы можете без лишних сложностей получить список пользователей группы sudo с помощью следующей команды:
getent group sudo
После окончания ввода команды следует нажать Enter для ее исполнения.
Исправление прав доступа к файлам из домашней директории
Если вы случайно воспользовались утилитой sudo или su для запуска приложения с графическим интерфейсом, после чего оно начало работать некорректно от лица обычного пользователя, вы можете исправить права доступа к файлам его конфигурации с помощью следующей команды (это одна строка):
find /home/$SUDO_USER ! -user $SUDO_USER -exec chown $SUDO_USER:$SUDO_USER ‘{}’ ;
После окончания ввода команды следует нажать Enter для ее исполнения.
Источник: linux-faq.ru