#linux #sudo
Как выполнить запуск sh скрипта без пароля?
Ответы
Ответ 1
Все можно настроить через файл /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 МанаОтвет 2
Я согласен с ответом Total Pusher, но сам обычно использую более простой и универсальный способ: Запускаю sudo visudo Добавляю в конец username ALL=(ALL) NOPASSWD: ALL (укажите свой username) Сохраняю Разница в том, что никаких особых групп и пользователей я не создаю и в результате можно запускать любые скрипты и команды без пароля (мне достаточно того, что юзер вводит пароль при запуске сессии). UPD: Как метко подметил andreymal, этот способ создаёт дыру в безопасности системы и использовать его на постоянной основе не рекомендуется.Ответ 3
Настраиваем доступ по ssh. Сначала генерируем ключ : удалённый_пользователь$ ssh-keygen без пароля ключа. Оставляем секретный ключ юзера себе. ( ~/.ssh/id_rsa ) Регистрируем публичный ключ root-у. root# mkdir -p /root/.ssh root# chmod 700 /root/.ssh root# cat id_rsa.pub >> /root/.ssh/authorized_keys Рисуем нужный скрипт ( root-пользователем ) и удалённо запускаем : удалённый_пользователь$ ssh -p 12345 root@192.168.0.66 /root/скрипт Если скрипт только написали, тогда копируйте сначала : удалённый_пользователь$ scp -P 12345 ./скрипт root@192.168.0.66:/root/ Если только на локальном компе это надо сделать, то вместо адреса рисуйте localhost. Если вы не меняли стандартный ssh порт 22 на 12345 , то опцию задания порта можно опустить.
Комментариев нет:
Отправить комментарий